bfd.info revision 1.1.1.5
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-2016 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_unknown = 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 : 20; 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 /* Convert ELF common symbol type to STT_COMMON or STT_OBJECT in this 475 BFD. */ 476 #define BFD_CONVERT_ELF_COMMON 0x40000 477 478 /* Use the ELF STT_COMMON type in this BFD. */ 479 #define BFD_USE_ELF_STT_COMMON 0x80000 480 481 /* Flags bits to be saved in bfd_preserve_save. */ 482 #define BFD_FLAGS_SAVED \ 483 (BFD_IN_MEMORY | BFD_COMPRESS | BFD_DECOMPRESS | BFD_PLUGIN \ 484 | BFD_COMPRESS_GABI | BFD_CONVERT_ELF_COMMON | BFD_USE_ELF_STT_COMMON) 485 486 /* Flags bits which are for BFD use only. */ 487 #define BFD_FLAGS_FOR_BFD_USE_MASK \ 488 (BFD_IN_MEMORY | BFD_COMPRESS | BFD_DECOMPRESS | BFD_LINKER_CREATED \ 489 | BFD_PLUGIN | BFD_TRADITIONAL_FORMAT | BFD_DETERMINISTIC_OUTPUT \ 490 | BFD_COMPRESS_GABI | BFD_CONVERT_ELF_COMMON | BFD_USE_ELF_STT_COMMON) 491 492 /* Is the file descriptor being cached? That is, can it be closed as 493 needed, and re-opened when accessed later? */ 494 unsigned int cacheable : 1; 495 496 /* Marks whether there was a default target specified when the 497 BFD was opened. This is used to select which matching algorithm 498 to use to choose the back end. */ 499 unsigned int target_defaulted : 1; 500 501 /* ... and here: (``once'' means at least once). */ 502 unsigned int opened_once : 1; 503 504 /* Set if we have a locally maintained mtime value, rather than 505 getting it from the file each time. */ 506 unsigned int mtime_set : 1; 507 508 /* Flag set if symbols from this BFD should not be exported. */ 509 unsigned int no_export : 1; 510 511 /* Remember when output has begun, to stop strange things 512 from happening. */ 513 unsigned int output_has_begun : 1; 514 515 /* Have archive map. */ 516 unsigned int has_armap : 1; 517 518 /* Set if this is a thin archive. */ 519 unsigned int is_thin_archive : 1; 520 521 /* Set if only required symbols should be added in the link hash table for 522 this object. Used by VMS linkers. */ 523 unsigned int selective_search : 1; 524 525 /* Set if this is the linker output BFD. */ 526 unsigned int is_linker_output : 1; 527 528 /* Set if this is the linker input BFD. */ 529 unsigned int is_linker_input : 1; 530 531 /* If this is an input for a compiler plug-in library. */ 532 ENUM_BITFIELD (bfd_plugin_format) plugin_format : 2; 533 534 /* Set if this is a plugin output file. */ 535 unsigned int lto_output : 1; 536 537 /* Set to dummy BFD created when claimed by a compiler plug-in 538 library. */ 539 bfd *plugin_dummy_bfd; 540 541 /* Currently my_archive is tested before adding origin to 542 anything. I believe that this can become always an add of 543 origin, with origin set to 0 for non archive files. */ 544 ufile_ptr origin; 545 546 /* The origin in the archive of the proxy entry. This will 547 normally be the same as origin, except for thin archives, 548 when it will contain the current offset of the proxy in the 549 thin archive rather than the offset of the bfd in its actual 550 container. */ 551 ufile_ptr proxy_origin; 552 553 /* A hash table for section names. */ 554 struct bfd_hash_table section_htab; 555 556 /* Pointer to linked list of sections. */ 557 struct bfd_section *sections; 558 559 /* The last section on the section list. */ 560 struct bfd_section *section_last; 561 562 /* The number of sections. */ 563 unsigned int section_count; 564 565 /* A field used by _bfd_generic_link_add_archive_symbols. This will 566 be used only for archive elements. */ 567 int archive_pass; 568 569 /* Stuff only useful for object files: 570 The start address. */ 571 bfd_vma start_address; 572 573 /* Symbol table for output BFD (with symcount entries). 574 Also used by the linker to cache input BFD symbols. */ 575 struct bfd_symbol **outsymbols; 576 577 /* Used for input and output. */ 578 unsigned int symcount; 579 580 /* Used for slurped dynamic symbol tables. */ 581 unsigned int dynsymcount; 582 583 /* Pointer to structure which contains architecture information. */ 584 const struct bfd_arch_info *arch_info; 585 586 /* Stuff only useful for archives. */ 587 void *arelt_data; 588 struct bfd *my_archive; /* The containing archive BFD. */ 589 struct bfd *archive_next; /* The next BFD in the archive. */ 590 struct bfd *archive_head; /* The first BFD in the archive. */ 591 struct bfd *nested_archives; /* List of nested archive in a flattened 592 thin archive. */ 593 594 union { 595 /* For input BFDs, a chain of BFDs involved in a link. */ 596 struct bfd *next; 597 /* For output BFD, the linker hash table. */ 598 struct bfd_link_hash_table *hash; 599 } link; 600 601 /* Used by the back end to hold private data. */ 602 union 603 { 604 struct aout_data_struct *aout_data; 605 struct artdata *aout_ar_data; 606 struct _oasys_data *oasys_obj_data; 607 struct _oasys_ar_data *oasys_ar_data; 608 struct coff_tdata *coff_obj_data; 609 struct pe_tdata *pe_obj_data; 610 struct xcoff_tdata *xcoff_obj_data; 611 struct ecoff_tdata *ecoff_obj_data; 612 struct ieee_data_struct *ieee_data; 613 struct ieee_ar_data_struct *ieee_ar_data; 614 struct srec_data_struct *srec_data; 615 struct verilog_data_struct *verilog_data; 616 struct ihex_data_struct *ihex_data; 617 struct tekhex_data_struct *tekhex_data; 618 struct elf_obj_tdata *elf_obj_data; 619 struct nlm_obj_tdata *nlm_obj_data; 620 struct bout_data_struct *bout_data; 621 struct mmo_data_struct *mmo_data; 622 struct sun_core_struct *sun_core_data; 623 struct sco5_core_struct *sco5_core_data; 624 struct trad_core_struct *trad_core_data; 625 struct som_data_struct *som_data; 626 struct hpux_core_struct *hpux_core_data; 627 struct hppabsd_core_struct *hppabsd_core_data; 628 struct sgi_core_struct *sgi_core_data; 629 struct lynx_core_struct *lynx_core_data; 630 struct osf_core_struct *osf_core_data; 631 struct cisco_core_struct *cisco_core_data; 632 struct versados_data_struct *versados_data; 633 struct netbsd_core_struct *netbsd_core_data; 634 struct mach_o_data_struct *mach_o_data; 635 struct mach_o_fat_data_struct *mach_o_fat_data; 636 struct plugin_data_struct *plugin_data; 637 struct bfd_pef_data_struct *pef_data; 638 struct bfd_pef_xlib_data_struct *pef_xlib_data; 639 struct bfd_sym_data_struct *sym_data; 640 void *any; 641 } 642 tdata; 643 644 /* Used by the application to hold private data. */ 645 void *usrdata; 646 647 /* Where all the allocated stuff under this BFD goes. This is a 648 struct objalloc *, but we use void * to avoid requiring the inclusion 649 of objalloc.h. */ 650 void *memory; 651 652 /* For input BFDs, the build ID, if the object has one. */ 653 const struct bfd_build_id *build_id; 654 }; 655 656 /* See note beside bfd_set_section_userdata. */ 657 static inline bfd_boolean 658 bfd_set_cacheable (bfd * abfd, bfd_boolean val) 659 { 660 abfd->cacheable = val; 661 return TRUE; 662 } 663 664 665File: bfd.info, Node: Error reporting, Next: Miscellaneous, Prev: typedef bfd, Up: BFD front end 666 6672.2 Error reporting 668=================== 669 670Most BFD functions return nonzero on success (check their individual 671documentation for precise semantics). On an error, they call 672`bfd_set_error' to set an error condition that callers can check by 673calling `bfd_get_error'. If that returns `bfd_error_system_call', then 674check `errno'. 675 676 The easiest way to report a BFD error to the user is to use 677`bfd_perror'. 678 6792.2.1 Type `bfd_error_type' 680--------------------------- 681 682The values returned by `bfd_get_error' are defined by the enumerated 683type `bfd_error_type'. 684 685 686 typedef enum bfd_error 687 { 688 bfd_error_no_error = 0, 689 bfd_error_system_call, 690 bfd_error_invalid_target, 691 bfd_error_wrong_format, 692 bfd_error_wrong_object_format, 693 bfd_error_invalid_operation, 694 bfd_error_no_memory, 695 bfd_error_no_symbols, 696 bfd_error_no_armap, 697 bfd_error_no_more_archived_files, 698 bfd_error_malformed_archive, 699 bfd_error_missing_dso, 700 bfd_error_file_not_recognized, 701 bfd_error_file_ambiguously_recognized, 702 bfd_error_no_contents, 703 bfd_error_nonrepresentable_section, 704 bfd_error_no_debug_section, 705 bfd_error_bad_value, 706 bfd_error_file_truncated, 707 bfd_error_file_too_big, 708 bfd_error_on_input, 709 bfd_error_invalid_error_code 710 } 711 bfd_error_type; 712 7132.2.1.1 `bfd_get_error' 714....................... 715 716*Synopsis* 717 bfd_error_type bfd_get_error (void); 718 *Description* 719Return the current BFD error condition. 720 7212.2.1.2 `bfd_set_error' 722....................... 723 724*Synopsis* 725 void bfd_set_error (bfd_error_type error_tag, ...); 726 *Description* 727Set the BFD error condition to be ERROR_TAG. If ERROR_TAG is 728bfd_error_on_input, then this function takes two more parameters, the 729input bfd where the error occurred, and the bfd_error_type error. 730 7312.2.1.3 `bfd_errmsg' 732.................... 733 734*Synopsis* 735 const char *bfd_errmsg (bfd_error_type error_tag); 736 *Description* 737Return a string describing the error ERROR_TAG, or the system error if 738ERROR_TAG is `bfd_error_system_call'. 739 7402.2.1.4 `bfd_perror' 741.................... 742 743*Synopsis* 744 void bfd_perror (const char *message); 745 *Description* 746Print to the standard error stream a string describing the last BFD 747error that occurred, or the last system error if the last BFD error was 748a system call failure. If MESSAGE is non-NULL and non-empty, the error 749string printed is preceded by MESSAGE, a colon, and a space. It is 750followed by a newline. 751 7522.2.2 BFD error handler 753----------------------- 754 755Some BFD functions want to print messages describing the problem. They 756call a BFD error handler function. This function may be overridden by 757the program. 758 759 The BFD error handler acts like printf. 760 761 762 typedef void (*bfd_error_handler_type) (const char *, ...); 763 7642.2.2.1 `bfd_set_error_handler' 765............................... 766 767*Synopsis* 768 bfd_error_handler_type bfd_set_error_handler (bfd_error_handler_type); 769 *Description* 770Set the BFD error handler function. Returns the previous function. 771 7722.2.2.2 `bfd_set_error_program_name' 773.................................... 774 775*Synopsis* 776 void bfd_set_error_program_name (const char *); 777 *Description* 778Set the program name to use when printing a BFD error. This is printed 779before the error message followed by a colon and space. The string 780must not be changed after it is passed to this function. 781 7822.2.2.3 `bfd_get_error_handler' 783............................... 784 785*Synopsis* 786 bfd_error_handler_type bfd_get_error_handler (void); 787 *Description* 788Return the BFD error handler function. 789 7902.2.3 BFD assert handler 791------------------------ 792 793If BFD finds an internal inconsistency, the bfd assert handler is 794called with information on the BFD version, BFD source file and line. 795If this happens, most programs linked against BFD are expected to want 796to exit with an error, or mark the current BFD operation as failed, so 797it is recommended to override the default handler, which just calls 798_bfd_error_handler and continues. 799 800 801 typedef void (*bfd_assert_handler_type) (const char *bfd_formatmsg, 802 const char *bfd_version, 803 const char *bfd_file, 804 int bfd_line); 805 8062.2.3.1 `bfd_set_assert_handler' 807................................ 808 809*Synopsis* 810 bfd_assert_handler_type bfd_set_assert_handler (bfd_assert_handler_type); 811 *Description* 812Set the BFD assert handler function. Returns the previous function. 813 8142.2.3.2 `bfd_get_assert_handler' 815................................ 816 817*Synopsis* 818 bfd_assert_handler_type bfd_get_assert_handler (void); 819 *Description* 820Return the BFD assert handler function. 821 822 823File: bfd.info, Node: Miscellaneous, Next: Memory Usage, Prev: Error reporting, Up: BFD front end 824 8252.3 Miscellaneous 826================= 827 8282.3.1 Miscellaneous functions 829----------------------------- 830 8312.3.1.1 `bfd_get_reloc_upper_bound' 832................................... 833 834*Synopsis* 835 long bfd_get_reloc_upper_bound (bfd *abfd, asection *sect); 836 *Description* 837Return the number of bytes required to store the relocation information 838associated with section SECT attached to bfd ABFD. If an error occurs, 839return -1. 840 8412.3.1.2 `bfd_canonicalize_reloc' 842................................ 843 844*Synopsis* 845 long bfd_canonicalize_reloc 846 (bfd *abfd, asection *sec, arelent **loc, asymbol **syms); 847 *Description* 848Call the back end associated with the open BFD ABFD and translate the 849external form of the relocation information attached to SEC into the 850internal canonical form. Place the table into memory at LOC, which has 851been preallocated, usually by a call to `bfd_get_reloc_upper_bound'. 852Returns the number of relocs, or -1 on error. 853 854 The SYMS table is also needed for horrible internal magic reasons. 855 8562.3.1.3 `bfd_set_reloc' 857....................... 858 859*Synopsis* 860 void bfd_set_reloc 861 (bfd *abfd, asection *sec, arelent **rel, unsigned int count); 862 *Description* 863Set the relocation pointer and count within section SEC to the values 864REL and COUNT. The argument ABFD is ignored. 865 8662.3.1.4 `bfd_set_file_flags' 867............................ 868 869*Synopsis* 870 bfd_boolean bfd_set_file_flags (bfd *abfd, flagword flags); 871 *Description* 872Set the flag word in the BFD ABFD to the value FLAGS. 873 874 Possible errors are: 875 * `bfd_error_wrong_format' - The target bfd was not of object format. 876 877 * `bfd_error_invalid_operation' - The target bfd was open for 878 reading. 879 880 * `bfd_error_invalid_operation' - The flag word contained a bit 881 which was not applicable to the type of file. E.g., an attempt 882 was made to set the `D_PAGED' bit on a BFD format which does not 883 support demand paging. 884 8852.3.1.5 `bfd_get_arch_size' 886........................... 887 888*Synopsis* 889 int bfd_get_arch_size (bfd *abfd); 890 *Description* 891Returns the normalized architecture address size, in bits, as 892determined by the object file's format. By normalized, we mean either 89332 or 64. For ELF, this information is included in the header. Use 894bfd_arch_bits_per_address for number of bits in the architecture 895address. 896 897 *Returns* 898Returns the arch size in bits if known, `-1' otherwise. 899 9002.3.1.6 `bfd_get_sign_extend_vma' 901................................. 902 903*Synopsis* 904 int bfd_get_sign_extend_vma (bfd *abfd); 905 *Description* 906Indicates if the target architecture "naturally" sign extends an 907address. Some architectures implicitly sign extend address values when 908they are converted to types larger than the size of an address. For 909instance, bfd_get_start_address() will return an address sign extended 910to fill a bfd_vma when this is the case. 911 912 *Returns* 913Returns `1' if the target architecture is known to sign extend 914addresses, `0' if the target architecture is known to not sign extend 915addresses, and `-1' otherwise. 916 9172.3.1.7 `bfd_set_start_address' 918............................... 919 920*Synopsis* 921 bfd_boolean bfd_set_start_address (bfd *abfd, bfd_vma vma); 922 *Description* 923Make VMA the entry point of output BFD ABFD. 924 925 *Returns* 926Returns `TRUE' on success, `FALSE' otherwise. 927 9282.3.1.8 `bfd_get_gp_size' 929......................... 930 931*Synopsis* 932 unsigned int bfd_get_gp_size (bfd *abfd); 933 *Description* 934Return the maximum size of objects to be optimized using the GP 935register under MIPS ECOFF. This is typically set by the `-G' argument 936to the compiler, assembler or linker. 937 9382.3.1.9 `bfd_set_gp_size' 939......................... 940 941*Synopsis* 942 void bfd_set_gp_size (bfd *abfd, unsigned int i); 943 *Description* 944Set the maximum size of objects to be optimized using the GP register 945under ECOFF or MIPS ELF. This is typically set by the `-G' argument to 946the compiler, assembler or linker. 947 9482.3.1.10 `bfd_scan_vma' 949....................... 950 951*Synopsis* 952 bfd_vma bfd_scan_vma (const char *string, const char **end, int base); 953 *Description* 954Convert, like `strtoul', a numerical expression STRING into a `bfd_vma' 955integer, and return that integer. (Though without as many bells and 956whistles as `strtoul'.) The expression is assumed to be unsigned 957(i.e., positive). If given a BASE, it is used as the base for 958conversion. A base of 0 causes the function to interpret the string in 959hex if a leading "0x" or "0X" is found, otherwise in octal if a leading 960zero is found, otherwise in decimal. 961 962 If the value would overflow, the maximum `bfd_vma' value is returned. 963 9642.3.1.11 `bfd_copy_private_header_data' 965....................................... 966 967*Synopsis* 968 bfd_boolean bfd_copy_private_header_data (bfd *ibfd, bfd *obfd); 969 *Description* 970Copy private BFD header information from the BFD IBFD to the the BFD 971OBFD. This copies information that may require sections to exist, but 972does not require symbol tables. Return `true' on success, `false' on 973error. Possible error returns are: 974 975 * `bfd_error_no_memory' - Not enough memory exists to create private 976 data for OBFD. 977 978 #define bfd_copy_private_header_data(ibfd, obfd) \ 979 BFD_SEND (obfd, _bfd_copy_private_header_data, \ 980 (ibfd, obfd)) 981 9822.3.1.12 `bfd_copy_private_bfd_data' 983.................................... 984 985*Synopsis* 986 bfd_boolean bfd_copy_private_bfd_data (bfd *ibfd, bfd *obfd); 987 *Description* 988Copy private BFD information from the BFD IBFD to the the BFD OBFD. 989Return `TRUE' on success, `FALSE' on error. Possible error returns are: 990 991 * `bfd_error_no_memory' - Not enough memory exists to create private 992 data for OBFD. 993 994 #define bfd_copy_private_bfd_data(ibfd, obfd) \ 995 BFD_SEND (obfd, _bfd_copy_private_bfd_data, \ 996 (ibfd, obfd)) 997 9982.3.1.13 `bfd_merge_private_bfd_data' 999..................................... 1000 1001*Synopsis* 1002 bfd_boolean bfd_merge_private_bfd_data (bfd *ibfd, bfd *obfd); 1003 *Description* 1004Merge private BFD information from the BFD IBFD to the the output file 1005BFD OBFD when linking. Return `TRUE' on success, `FALSE' on error. 1006Possible error returns are: 1007 1008 * `bfd_error_no_memory' - Not enough memory exists to create private 1009 data for OBFD. 1010 1011 #define bfd_merge_private_bfd_data(ibfd, obfd) \ 1012 BFD_SEND (obfd, _bfd_merge_private_bfd_data, \ 1013 (ibfd, obfd)) 1014 10152.3.1.14 `bfd_set_private_flags' 1016................................ 1017 1018*Synopsis* 1019 bfd_boolean bfd_set_private_flags (bfd *abfd, flagword flags); 1020 *Description* 1021Set private BFD flag information in the BFD ABFD. Return `TRUE' on 1022success, `FALSE' on error. Possible error returns are: 1023 1024 * `bfd_error_no_memory' - Not enough memory exists to create private 1025 data for OBFD. 1026 1027 #define bfd_set_private_flags(abfd, flags) \ 1028 BFD_SEND (abfd, _bfd_set_private_flags, (abfd, flags)) 1029 10302.3.1.15 `Other functions' 1031.......................... 1032 1033*Description* 1034The following functions exist but have not yet been documented. 1035 #define bfd_sizeof_headers(abfd, info) \ 1036 BFD_SEND (abfd, _bfd_sizeof_headers, (abfd, info)) 1037 1038 #define bfd_find_nearest_line(abfd, sec, syms, off, file, func, line) \ 1039 BFD_SEND (abfd, _bfd_find_nearest_line, \ 1040 (abfd, syms, sec, off, file, func, line, NULL)) 1041 1042 #define bfd_find_nearest_line_discriminator(abfd, sec, syms, off, file, func, \ 1043 line, disc) \ 1044 BFD_SEND (abfd, _bfd_find_nearest_line, \ 1045 (abfd, syms, sec, off, file, func, line, disc)) 1046 1047 #define bfd_find_line(abfd, syms, sym, file, line) \ 1048 BFD_SEND (abfd, _bfd_find_line, \ 1049 (abfd, syms, sym, file, line)) 1050 1051 #define bfd_find_inliner_info(abfd, file, func, line) \ 1052 BFD_SEND (abfd, _bfd_find_inliner_info, \ 1053 (abfd, file, func, line)) 1054 1055 #define bfd_debug_info_start(abfd) \ 1056 BFD_SEND (abfd, _bfd_debug_info_start, (abfd)) 1057 1058 #define bfd_debug_info_end(abfd) \ 1059 BFD_SEND (abfd, _bfd_debug_info_end, (abfd)) 1060 1061 #define bfd_debug_info_accumulate(abfd, section) \ 1062 BFD_SEND (abfd, _bfd_debug_info_accumulate, (abfd, section)) 1063 1064 #define bfd_stat_arch_elt(abfd, stat) \ 1065 BFD_SEND (abfd, _bfd_stat_arch_elt,(abfd, stat)) 1066 1067 #define bfd_update_armap_timestamp(abfd) \ 1068 BFD_SEND (abfd, _bfd_update_armap_timestamp, (abfd)) 1069 1070 #define bfd_set_arch_mach(abfd, arch, mach)\ 1071 BFD_SEND ( abfd, _bfd_set_arch_mach, (abfd, arch, mach)) 1072 1073 #define bfd_relax_section(abfd, section, link_info, again) \ 1074 BFD_SEND (abfd, _bfd_relax_section, (abfd, section, link_info, again)) 1075 1076 #define bfd_gc_sections(abfd, link_info) \ 1077 BFD_SEND (abfd, _bfd_gc_sections, (abfd, link_info)) 1078 1079 #define bfd_lookup_section_flags(link_info, flag_info, section) \ 1080 BFD_SEND (abfd, _bfd_lookup_section_flags, (link_info, flag_info, section)) 1081 1082 #define bfd_merge_sections(abfd, link_info) \ 1083 BFD_SEND (abfd, _bfd_merge_sections, (abfd, link_info)) 1084 1085 #define bfd_is_group_section(abfd, sec) \ 1086 BFD_SEND (abfd, _bfd_is_group_section, (abfd, sec)) 1087 1088 #define bfd_discard_group(abfd, sec) \ 1089 BFD_SEND (abfd, _bfd_discard_group, (abfd, sec)) 1090 1091 #define bfd_link_hash_table_create(abfd) \ 1092 BFD_SEND (abfd, _bfd_link_hash_table_create, (abfd)) 1093 1094 #define bfd_link_add_symbols(abfd, info) \ 1095 BFD_SEND (abfd, _bfd_link_add_symbols, (abfd, info)) 1096 1097 #define bfd_link_just_syms(abfd, sec, info) \ 1098 BFD_SEND (abfd, _bfd_link_just_syms, (sec, info)) 1099 1100 #define bfd_final_link(abfd, info) \ 1101 BFD_SEND (abfd, _bfd_final_link, (abfd, info)) 1102 1103 #define bfd_free_cached_info(abfd) \ 1104 BFD_SEND (abfd, _bfd_free_cached_info, (abfd)) 1105 1106 #define bfd_get_dynamic_symtab_upper_bound(abfd) \ 1107 BFD_SEND (abfd, _bfd_get_dynamic_symtab_upper_bound, (abfd)) 1108 1109 #define bfd_print_private_bfd_data(abfd, file)\ 1110 BFD_SEND (abfd, _bfd_print_private_bfd_data, (abfd, file)) 1111 1112 #define bfd_canonicalize_dynamic_symtab(abfd, asymbols) \ 1113 BFD_SEND (abfd, _bfd_canonicalize_dynamic_symtab, (abfd, asymbols)) 1114 1115 #define bfd_get_synthetic_symtab(abfd, count, syms, dyncount, dynsyms, ret) \ 1116 BFD_SEND (abfd, _bfd_get_synthetic_symtab, (abfd, count, syms, \ 1117 dyncount, dynsyms, ret)) 1118 1119 #define bfd_get_dynamic_reloc_upper_bound(abfd) \ 1120 BFD_SEND (abfd, _bfd_get_dynamic_reloc_upper_bound, (abfd)) 1121 1122 #define bfd_canonicalize_dynamic_reloc(abfd, arels, asyms) \ 1123 BFD_SEND (abfd, _bfd_canonicalize_dynamic_reloc, (abfd, arels, asyms)) 1124 1125 extern bfd_byte *bfd_get_relocated_section_contents 1126 (bfd *, struct bfd_link_info *, struct bfd_link_order *, bfd_byte *, 1127 bfd_boolean, asymbol **); 1128 11292.3.1.16 `bfd_alt_mach_code' 1130............................ 1131 1132*Synopsis* 1133 bfd_boolean bfd_alt_mach_code (bfd *abfd, int alternative); 1134 *Description* 1135When more than one machine code number is available for the same 1136machine type, this function can be used to switch between the preferred 1137one (alternative == 0) and any others. Currently, only ELF supports 1138this feature, with up to two alternate machine codes. 1139 11402.3.1.17 `bfd_emul_get_maxpagesize' 1141................................... 1142 1143*Synopsis* 1144 bfd_vma bfd_emul_get_maxpagesize (const char *); 1145 *Description* 1146Returns the maximum page size, in bytes, as determined by emulation. 1147 1148 *Returns* 1149Returns the maximum page size in bytes for ELF, 0 otherwise. 1150 11512.3.1.18 `bfd_emul_set_maxpagesize' 1152................................... 1153 1154*Synopsis* 1155 void bfd_emul_set_maxpagesize (const char *, bfd_vma); 1156 *Description* 1157For ELF, set the maximum page size for the emulation. It is a no-op 1158for other formats. 1159 11602.3.1.19 `bfd_emul_get_commonpagesize' 1161...................................... 1162 1163*Synopsis* 1164 bfd_vma bfd_emul_get_commonpagesize (const char *); 1165 *Description* 1166Returns the common page size, in bytes, as determined by emulation. 1167 1168 *Returns* 1169Returns the common page size in bytes for ELF, 0 otherwise. 1170 11712.3.1.20 `bfd_emul_set_commonpagesize' 1172...................................... 1173 1174*Synopsis* 1175 void bfd_emul_set_commonpagesize (const char *, bfd_vma); 1176 *Description* 1177For ELF, set the common page size for the emulation. It is a no-op for 1178other formats. 1179 11802.3.1.21 `bfd_demangle' 1181....................... 1182 1183*Synopsis* 1184 char *bfd_demangle (bfd *, const char *, int); 1185 *Description* 1186Wrapper around cplus_demangle. Strips leading underscores and other 1187such chars that would otherwise confuse the demangler. If passed a g++ 1188v3 ABI mangled name, returns a buffer allocated with malloc holding the 1189demangled name. Returns NULL otherwise and on memory alloc failure. 1190 11912.3.1.22 `bfd_update_compression_header' 1192........................................ 1193 1194*Synopsis* 1195 void bfd_update_compression_header 1196 (bfd *abfd, bfd_byte *contents, asection *sec); 1197 *Description* 1198Set the compression header at CONTENTS of SEC in ABFD and update 1199elf_section_flags for compression. 1200 12012.3.1.23 `bfd_check_compression_header' 1202....................................... 1203 1204*Synopsis* 1205 bfd_boolean bfd_check_compression_header 1206 (bfd *abfd, bfd_byte *contents, asection *sec, 1207 bfd_size_type *uncompressed_size); 1208 *Description* 1209Check the compression header at CONTENTS of SEC in ABFD and store the 1210uncompressed size in UNCOMPRESSED_SIZE if the compression header is 1211valid. 1212 1213 *Returns* 1214Return TRUE if the compression header is valid. 1215 12162.3.1.24 `bfd_get_compression_header_size' 1217.......................................... 1218 1219*Synopsis* 1220 int bfd_get_compression_header_size (bfd *abfd, asection *sec); 1221 *Description* 1222Return the size of the compression header of SEC in ABFD. 1223 1224 *Returns* 1225Return the size of the compression header in bytes. 1226 12272.3.1.25 `bfd_convert_section_size' 1228................................... 1229 1230*Synopsis* 1231 bfd_size_type bfd_convert_section_size 1232 (bfd *ibfd, asection *isec, bfd *obfd, bfd_size_type size); 1233 *Description* 1234Convert the size SIZE of the section ISEC in input BFD IBFD to the 1235section size in output BFD OBFD. 1236 12372.3.1.26 `bfd_convert_section_contents' 1238....................................... 1239 1240*Synopsis* 1241 bfd_boolean bfd_convert_section_contents 1242 (bfd *ibfd, asection *isec, bfd *obfd, 1243 bfd_byte **ptr, bfd_size_type *ptr_size); 1244 *Description* 1245Convert the contents, stored in *PTR, of the section ISEC in input BFD 1246IBFD to output BFD OBFD if needed. The original buffer pointed to by 1247*PTR may be freed and *PTR is returned with memory malloc'd by this 1248function, and the new size written to PTR_SIZE. 1249 12502.3.1.27 `struct bfd_iovec' 1251........................... 1252 1253*Description* 1254The `struct bfd_iovec' contains the internal file I/O class. Each 1255`BFD' has an instance of this class and all file I/O is routed through 1256it (it is assumed that the instance implements all methods listed 1257below). 1258 struct bfd_iovec 1259 { 1260 /* To avoid problems with macros, a "b" rather than "f" 1261 prefix is prepended to each method name. */ 1262 /* Attempt to read/write NBYTES on ABFD's IOSTREAM storing/fetching 1263 bytes starting at PTR. Return the number of bytes actually 1264 transfered (a read past end-of-file returns less than NBYTES), 1265 or -1 (setting `bfd_error') if an error occurs. */ 1266 file_ptr (*bread) (struct bfd *abfd, void *ptr, file_ptr nbytes); 1267 file_ptr (*bwrite) (struct bfd *abfd, const void *ptr, 1268 file_ptr nbytes); 1269 /* Return the current IOSTREAM file offset, or -1 (setting `bfd_error' 1270 if an error occurs. */ 1271 file_ptr (*btell) (struct bfd *abfd); 1272 /* For the following, on successful completion a value of 0 is returned. 1273 Otherwise, a value of -1 is returned (and `bfd_error' is set). */ 1274 int (*bseek) (struct bfd *abfd, file_ptr offset, int whence); 1275 int (*bclose) (struct bfd *abfd); 1276 int (*bflush) (struct bfd *abfd); 1277 int (*bstat) (struct bfd *abfd, struct stat *sb); 1278 /* Mmap a part of the files. ADDR, LEN, PROT, FLAGS and OFFSET are the usual 1279 mmap parameter, except that LEN and OFFSET do not need to be page 1280 aligned. Returns (void *)-1 on failure, mmapped address on success. 1281 Also write in MAP_ADDR the address of the page aligned buffer and in 1282 MAP_LEN the size mapped (a page multiple). Use unmap with MAP_ADDR and 1283 MAP_LEN to unmap. */ 1284 void *(*bmmap) (struct bfd *abfd, void *addr, bfd_size_type len, 1285 int prot, int flags, file_ptr offset, 1286 void **map_addr, bfd_size_type *map_len); 1287 }; 1288 extern const struct bfd_iovec _bfd_memory_iovec; 1289 12902.3.1.28 `bfd_get_mtime' 1291........................ 1292 1293*Synopsis* 1294 long bfd_get_mtime (bfd *abfd); 1295 *Description* 1296Return the file modification time (as read from the file system, or 1297from the archive header for archive members). 1298 12992.3.1.29 `bfd_get_size' 1300....................... 1301 1302*Synopsis* 1303 file_ptr bfd_get_size (bfd *abfd); 1304 *Description* 1305Return the file size (as read from file system) for the file associated 1306with BFD ABFD. 1307 1308 The initial motivation for, and use of, this routine is not so we 1309can get the exact size of the object the BFD applies to, since that 1310might not be generally possible (archive members for example). It 1311would be ideal if someone could eventually modify it so that such 1312results were guaranteed. 1313 1314 Instead, we want to ask questions like "is this NNN byte sized 1315object I'm about to try read from file offset YYY reasonable?" As as 1316example of where we might do this, some object formats use string 1317tables for which the first `sizeof (long)' bytes of the table contain 1318the size of the table itself, including the size bytes. If an 1319application tries to read what it thinks is one of these string tables, 1320without some way to validate the size, and for some reason the size is 1321wrong (byte swapping error, wrong location for the string table, etc.), 1322the only clue is likely to be a read error when it tries to read the 1323table, or a "virtual memory exhausted" error when it tries to allocate 132415 bazillon bytes of space for the 15 bazillon byte table it is about 1325to read. This function at least allows us to answer the question, "is 1326the size reasonable?". 1327 13282.3.1.30 `bfd_mmap' 1329................... 1330 1331*Synopsis* 1332 void *bfd_mmap (bfd *abfd, void *addr, bfd_size_type len, 1333 int prot, int flags, file_ptr offset, 1334 void **map_addr, bfd_size_type *map_len); 1335 *Description* 1336Return mmap()ed region of the file, if possible and implemented. LEN 1337and OFFSET do not need to be page aligned. The page aligned address 1338and length are written to MAP_ADDR and MAP_LEN. 1339 1340 1341File: bfd.info, Node: Memory Usage, Next: Initialization, Prev: Miscellaneous, Up: BFD front end 1342 13432.4 Memory Usage 1344================ 1345 1346BFD keeps all of its internal structures in obstacks. There is one 1347obstack per open BFD file, into which the current state is stored. When 1348a BFD is closed, the obstack is deleted, and so everything which has 1349been allocated by BFD for the closing file is thrown away. 1350 1351 BFD does not free anything created by an application, but pointers 1352into `bfd' structures become invalid on a `bfd_close'; for example, 1353after a `bfd_close' the vector passed to `bfd_canonicalize_symtab' is 1354still around, since it has been allocated by the application, but the 1355data that it pointed to are lost. 1356 1357 The general rule is to not close a BFD until all operations dependent 1358upon data from the BFD have been completed, or all the data from within 1359the file has been copied. To help with the management of memory, there 1360is a function (`bfd_alloc_size') which returns the number of bytes in 1361obstacks associated with the supplied BFD. This could be used to select 1362the greediest open BFD, close it to reclaim the memory, perform some 1363operation and reopen the BFD again, to get a fresh copy of the data 1364structures. 1365 1366 1367File: bfd.info, Node: Initialization, Next: Sections, Prev: Memory Usage, Up: BFD front end 1368 13692.5 Initialization 1370================== 1371 13722.5.1 Initialization functions 1373------------------------------ 1374 1375These are the functions that handle initializing a BFD. 1376 13772.5.1.1 `bfd_init' 1378.................. 1379 1380*Synopsis* 1381 void bfd_init (void); 1382 *Description* 1383This routine must be called before any other BFD function to initialize 1384magical internal data structures. 1385 1386 1387File: bfd.info, Node: Sections, Next: Symbols, Prev: Initialization, Up: BFD front end 1388 13892.6 Sections 1390============ 1391 1392The raw data contained within a BFD is maintained through the section 1393abstraction. A single BFD may have any number of sections. It keeps 1394hold of them by pointing to the first; each one points to the next in 1395the list. 1396 1397 Sections are supported in BFD in `section.c'. 1398 1399* Menu: 1400 1401* Section Input:: 1402* Section Output:: 1403* typedef asection:: 1404* section prototypes:: 1405 1406 1407File: bfd.info, Node: Section Input, Next: Section Output, Prev: Sections, Up: Sections 1408 14092.6.1 Section input 1410------------------- 1411 1412When a BFD is opened for reading, the section structures are created 1413and attached to the BFD. 1414 1415 Each section has a name which describes the section in the outside 1416world--for example, `a.out' would contain at least three sections, 1417called `.text', `.data' and `.bss'. 1418 1419 Names need not be unique; for example a COFF file may have several 1420sections named `.data'. 1421 1422 Sometimes a BFD will contain more than the "natural" number of 1423sections. A back end may attach other sections containing constructor 1424data, or an application may add a section (using `bfd_make_section') to 1425the sections attached to an already open BFD. For example, the linker 1426creates an extra section `COMMON' for each input file's BFD to hold 1427information about common storage. 1428 1429 The raw data is not necessarily read in when the section descriptor 1430is created. Some targets may leave the data in place until a 1431`bfd_get_section_contents' call is made. Other back ends may read in 1432all the data at once. For example, an S-record file has to be read 1433once to determine the size of the data. An IEEE-695 file doesn't 1434contain raw data in sections, but data and relocation expressions 1435intermixed, so the data area has to be parsed to get out the data and 1436relocations. 1437 1438 1439File: bfd.info, Node: Section Output, Next: typedef asection, Prev: Section Input, Up: Sections 1440 14412.6.2 Section output 1442-------------------- 1443 1444To write a new object style BFD, the various sections to be written 1445have to be created. They are attached to the BFD in the same way as 1446input sections; data is written to the sections using 1447`bfd_set_section_contents'. 1448 1449 Any program that creates or combines sections (e.g., the assembler 1450and linker) must use the `asection' fields `output_section' and 1451`output_offset' to indicate the file sections to which each section 1452must be written. (If the section is being created from scratch, 1453`output_section' should probably point to the section itself and 1454`output_offset' should probably be zero.) 1455 1456 The data to be written comes from input sections attached (via 1457`output_section' pointers) to the output sections. The output section 1458structure can be considered a filter for the input section: the output 1459section determines the vma of the output data and the name, but the 1460input section determines the offset into the output section of the data 1461to be written. 1462 1463 E.g., to create a section "O", starting at 0x100, 0x123 long, 1464containing two subsections, "A" at offset 0x0 (i.e., at vma 0x100) and 1465"B" at offset 0x20 (i.e., at vma 0x120) the `asection' structures would 1466look like: 1467 1468 section name "A" 1469 output_offset 0x00 1470 size 0x20 1471 output_section -----------> section name "O" 1472 | vma 0x100 1473 section name "B" | size 0x123 1474 output_offset 0x20 | 1475 size 0x103 | 1476 output_section --------| 1477 14782.6.3 Link orders 1479----------------- 1480 1481The data within a section is stored in a "link_order". These are much 1482like the fixups in `gas'. The link_order abstraction allows a section 1483to grow and shrink within itself. 1484 1485 A link_order knows how big it is, and which is the next link_order 1486and where the raw data for it is; it also points to a list of 1487relocations which apply to it. 1488 1489 The link_order is used by the linker to perform relaxing on final 1490code. The compiler creates code which is as big as necessary to make 1491it work without relaxing, and the user can select whether to relax. 1492Sometimes relaxing takes a lot of time. The linker runs around the 1493relocations to see if any are attached to data which can be shrunk, if 1494so it does it on a link_order by link_order basis. 1495 1496 1497File: bfd.info, Node: typedef asection, Next: section prototypes, Prev: Section Output, Up: Sections 1498 14992.6.4 typedef asection 1500---------------------- 1501 1502Here is the section structure: 1503 1504 1505 typedef struct bfd_section 1506 { 1507 /* The name of the section; the name isn't a copy, the pointer is 1508 the same as that passed to bfd_make_section. */ 1509 const char *name; 1510 1511 /* A unique sequence number. */ 1512 unsigned int id; 1513 1514 /* Which section in the bfd; 0..n-1 as sections are created in a bfd. */ 1515 unsigned int index; 1516 1517 /* The next section in the list belonging to the BFD, or NULL. */ 1518 struct bfd_section *next; 1519 1520 /* The previous section in the list belonging to the BFD, or NULL. */ 1521 struct bfd_section *prev; 1522 1523 /* The field flags contains attributes of the section. Some 1524 flags are read in from the object file, and some are 1525 synthesized from other information. */ 1526 flagword flags; 1527 1528 #define SEC_NO_FLAGS 0x000 1529 1530 /* Tells the OS to allocate space for this section when loading. 1531 This is clear for a section containing debug information only. */ 1532 #define SEC_ALLOC 0x001 1533 1534 /* Tells the OS to load the section from the file when loading. 1535 This is clear for a .bss section. */ 1536 #define SEC_LOAD 0x002 1537 1538 /* The section contains data still to be relocated, so there is 1539 some relocation information too. */ 1540 #define SEC_RELOC 0x004 1541 1542 /* A signal to the OS that the section contains read only data. */ 1543 #define SEC_READONLY 0x008 1544 1545 /* The section contains code only. */ 1546 #define SEC_CODE 0x010 1547 1548 /* The section contains data only. */ 1549 #define SEC_DATA 0x020 1550 1551 /* The section will reside in ROM. */ 1552 #define SEC_ROM 0x040 1553 1554 /* The section contains constructor information. This section 1555 type is used by the linker to create lists of constructors and 1556 destructors used by `g++'. When a back end sees a symbol 1557 which should be used in a constructor list, it creates a new 1558 section for the type of name (e.g., `__CTOR_LIST__'), attaches 1559 the symbol to it, and builds a relocation. To build the lists 1560 of constructors, all the linker has to do is catenate all the 1561 sections called `__CTOR_LIST__' and relocate the data 1562 contained within - exactly the operations it would peform on 1563 standard data. */ 1564 #define SEC_CONSTRUCTOR 0x080 1565 1566 /* The section has contents - a data section could be 1567 `SEC_ALLOC' | `SEC_HAS_CONTENTS'; a debug section could be 1568 `SEC_HAS_CONTENTS' */ 1569 #define SEC_HAS_CONTENTS 0x100 1570 1571 /* An instruction to the linker to not output the section 1572 even if it has information which would normally be written. */ 1573 #define SEC_NEVER_LOAD 0x200 1574 1575 /* The section contains thread local data. */ 1576 #define SEC_THREAD_LOCAL 0x400 1577 1578 /* The section has GOT references. This flag is only for the 1579 linker, and is currently only used by the elf32-hppa back end. 1580 It will be set if global offset table references were detected 1581 in this section, which indicate to the linker that the section 1582 contains PIC code, and must be handled specially when doing a 1583 static link. */ 1584 #define SEC_HAS_GOT_REF 0x800 1585 1586 /* The section contains common symbols (symbols may be defined 1587 multiple times, the value of a symbol is the amount of 1588 space it requires, and the largest symbol value is the one 1589 used). Most targets have exactly one of these (which we 1590 translate to bfd_com_section_ptr), but ECOFF has two. */ 1591 #define SEC_IS_COMMON 0x1000 1592 1593 /* The section contains only debugging information. For 1594 example, this is set for ELF .debug and .stab sections. 1595 strip tests this flag to see if a section can be 1596 discarded. */ 1597 #define SEC_DEBUGGING 0x2000 1598 1599 /* The contents of this section are held in memory pointed to 1600 by the contents field. This is checked by bfd_get_section_contents, 1601 and the data is retrieved from memory if appropriate. */ 1602 #define SEC_IN_MEMORY 0x4000 1603 1604 /* The contents of this section are to be excluded by the 1605 linker for executable and shared objects unless those 1606 objects are to be further relocated. */ 1607 #define SEC_EXCLUDE 0x8000 1608 1609 /* The contents of this section are to be sorted based on the sum of 1610 the symbol and addend values specified by the associated relocation 1611 entries. Entries without associated relocation entries will be 1612 appended to the end of the section in an unspecified order. */ 1613 #define SEC_SORT_ENTRIES 0x10000 1614 1615 /* When linking, duplicate sections of the same name should be 1616 discarded, rather than being combined into a single section as 1617 is usually done. This is similar to how common symbols are 1618 handled. See SEC_LINK_DUPLICATES below. */ 1619 #define SEC_LINK_ONCE 0x20000 1620 1621 /* If SEC_LINK_ONCE is set, this bitfield describes how the linker 1622 should handle duplicate sections. */ 1623 #define SEC_LINK_DUPLICATES 0xc0000 1624 1625 /* This value for SEC_LINK_DUPLICATES means that duplicate 1626 sections with the same name should simply be discarded. */ 1627 #define SEC_LINK_DUPLICATES_DISCARD 0x0 1628 1629 /* This value for SEC_LINK_DUPLICATES means that the linker 1630 should warn if there are any duplicate sections, although 1631 it should still only link one copy. */ 1632 #define SEC_LINK_DUPLICATES_ONE_ONLY 0x40000 1633 1634 /* This value for SEC_LINK_DUPLICATES means that the linker 1635 should warn if any duplicate sections are a different size. */ 1636 #define SEC_LINK_DUPLICATES_SAME_SIZE 0x80000 1637 1638 /* This value for SEC_LINK_DUPLICATES means that the linker 1639 should warn if any duplicate sections contain different 1640 contents. */ 1641 #define SEC_LINK_DUPLICATES_SAME_CONTENTS \ 1642 (SEC_LINK_DUPLICATES_ONE_ONLY | SEC_LINK_DUPLICATES_SAME_SIZE) 1643 1644 /* This section was created by the linker as part of dynamic 1645 relocation or other arcane processing. It is skipped when 1646 going through the first-pass output, trusting that someone 1647 else up the line will take care of it later. */ 1648 #define SEC_LINKER_CREATED 0x100000 1649 1650 /* This section should not be subject to garbage collection. 1651 Also set to inform the linker that this section should not be 1652 listed in the link map as discarded. */ 1653 #define SEC_KEEP 0x200000 1654 1655 /* This section contains "short" data, and should be placed 1656 "near" the GP. */ 1657 #define SEC_SMALL_DATA 0x400000 1658 1659 /* Attempt to merge identical entities in the section. 1660 Entity size is given in the entsize field. */ 1661 #define SEC_MERGE 0x800000 1662 1663 /* If given with SEC_MERGE, entities to merge are zero terminated 1664 strings where entsize specifies character size instead of fixed 1665 size entries. */ 1666 #define SEC_STRINGS 0x1000000 1667 1668 /* This section contains data about section groups. */ 1669 #define SEC_GROUP 0x2000000 1670 1671 /* The section is a COFF shared library section. This flag is 1672 only for the linker. If this type of section appears in 1673 the input file, the linker must copy it to the output file 1674 without changing the vma or size. FIXME: Although this 1675 was originally intended to be general, it really is COFF 1676 specific (and the flag was renamed to indicate this). It 1677 might be cleaner to have some more general mechanism to 1678 allow the back end to control what the linker does with 1679 sections. */ 1680 #define SEC_COFF_SHARED_LIBRARY 0x4000000 1681 1682 /* This input section should be copied to output in reverse order 1683 as an array of pointers. This is for ELF linker internal use 1684 only. */ 1685 #define SEC_ELF_REVERSE_COPY 0x4000000 1686 1687 /* This section contains data which may be shared with other 1688 executables or shared objects. This is for COFF only. */ 1689 #define SEC_COFF_SHARED 0x8000000 1690 1691 /* This section should be compressed. This is for ELF linker 1692 internal use only. */ 1693 #define SEC_ELF_COMPRESS 0x8000000 1694 1695 /* When a section with this flag is being linked, then if the size of 1696 the input section is less than a page, it should not cross a page 1697 boundary. If the size of the input section is one page or more, 1698 it should be aligned on a page boundary. This is for TI 1699 TMS320C54X only. */ 1700 #define SEC_TIC54X_BLOCK 0x10000000 1701 1702 /* This section should be renamed. This is for ELF linker 1703 internal use only. */ 1704 #define SEC_ELF_RENAME 0x10000000 1705 1706 /* Conditionally link this section; do not link if there are no 1707 references found to any symbol in the section. This is for TI 1708 TMS320C54X only. */ 1709 #define SEC_TIC54X_CLINK 0x20000000 1710 1711 /* This section contains vliw code. This is for Toshiba MeP only. */ 1712 #define SEC_MEP_VLIW 0x20000000 1713 1714 /* Indicate that section has the no read flag set. This happens 1715 when memory read flag isn't set. */ 1716 #define SEC_COFF_NOREAD 0x40000000 1717 1718 /* Indicate that section has the no read flag set. */ 1719 #define SEC_ELF_NOREAD 0x80000000 1720 1721 /* End of section flags. */ 1722 1723 /* Some internal packed boolean fields. */ 1724 1725 /* See the vma field. */ 1726 unsigned int user_set_vma : 1; 1727 1728 /* A mark flag used by some of the linker backends. */ 1729 unsigned int linker_mark : 1; 1730 1731 /* Another mark flag used by some of the linker backends. Set for 1732 output sections that have an input section. */ 1733 unsigned int linker_has_input : 1; 1734 1735 /* Mark flag used by some linker backends for garbage collection. */ 1736 unsigned int gc_mark : 1; 1737 1738 /* Section compression status. */ 1739 unsigned int compress_status : 2; 1740 #define COMPRESS_SECTION_NONE 0 1741 #define COMPRESS_SECTION_DONE 1 1742 #define DECOMPRESS_SECTION_SIZED 2 1743 1744 /* The following flags are used by the ELF linker. */ 1745 1746 /* Mark sections which have been allocated to segments. */ 1747 unsigned int segment_mark : 1; 1748 1749 /* Type of sec_info information. */ 1750 unsigned int sec_info_type:3; 1751 #define SEC_INFO_TYPE_NONE 0 1752 #define SEC_INFO_TYPE_STABS 1 1753 #define SEC_INFO_TYPE_MERGE 2 1754 #define SEC_INFO_TYPE_EH_FRAME 3 1755 #define SEC_INFO_TYPE_JUST_SYMS 4 1756 #define SEC_INFO_TYPE_TARGET 5 1757 #define SEC_INFO_TYPE_EH_FRAME_ENTRY 6 1758 1759 /* Nonzero if this section uses RELA relocations, rather than REL. */ 1760 unsigned int use_rela_p:1; 1761 1762 /* Bits used by various backends. The generic code doesn't touch 1763 these fields. */ 1764 1765 unsigned int sec_flg0:1; 1766 unsigned int sec_flg1:1; 1767 unsigned int sec_flg2:1; 1768 unsigned int sec_flg3:1; 1769 unsigned int sec_flg4:1; 1770 unsigned int sec_flg5:1; 1771 1772 /* End of internal packed boolean fields. */ 1773 1774 /* The virtual memory address of the section - where it will be 1775 at run time. The symbols are relocated against this. The 1776 user_set_vma flag is maintained by bfd; if it's not set, the 1777 backend can assign addresses (for example, in `a.out', where 1778 the default address for `.data' is dependent on the specific 1779 target and various flags). */ 1780 bfd_vma vma; 1781 1782 /* The load address of the section - where it would be in a 1783 rom image; really only used for writing section header 1784 information. */ 1785 bfd_vma lma; 1786 1787 /* The size of the section in *octets*, as it will be output. 1788 Contains a value even if the section has no contents (e.g., the 1789 size of `.bss'). */ 1790 bfd_size_type size; 1791 1792 /* For input sections, the original size on disk of the section, in 1793 octets. This field should be set for any section whose size is 1794 changed by linker relaxation. It is required for sections where 1795 the linker relaxation scheme doesn't cache altered section and 1796 reloc contents (stabs, eh_frame, SEC_MERGE, some coff relaxing 1797 targets), and thus the original size needs to be kept to read the 1798 section multiple times. For output sections, rawsize holds the 1799 section size calculated on a previous linker relaxation pass. */ 1800 bfd_size_type rawsize; 1801 1802 /* The compressed size of the section in octets. */ 1803 bfd_size_type compressed_size; 1804 1805 /* Relaxation table. */ 1806 struct relax_table *relax; 1807 1808 /* Count of used relaxation table entries. */ 1809 int relax_count; 1810 1811 1812 /* If this section is going to be output, then this value is the 1813 offset in *bytes* into the output section of the first byte in the 1814 input section (byte ==> smallest addressable unit on the 1815 target). In most cases, if this was going to start at the 1816 100th octet (8-bit quantity) in the output section, this value 1817 would be 100. However, if the target byte size is 16 bits 1818 (bfd_octets_per_byte is "2"), this value would be 50. */ 1819 bfd_vma output_offset; 1820 1821 /* The output section through which to map on output. */ 1822 struct bfd_section *output_section; 1823 1824 /* The alignment requirement of the section, as an exponent of 2 - 1825 e.g., 3 aligns to 2^3 (or 8). */ 1826 unsigned int alignment_power; 1827 1828 /* If an input section, a pointer to a vector of relocation 1829 records for the data in this section. */ 1830 struct reloc_cache_entry *relocation; 1831 1832 /* If an output section, a pointer to a vector of pointers to 1833 relocation records for the data in this section. */ 1834 struct reloc_cache_entry **orelocation; 1835 1836 /* The number of relocation records in one of the above. */ 1837 unsigned reloc_count; 1838 1839 /* Information below is back end specific - and not always used 1840 or updated. */ 1841 1842 /* File position of section data. */ 1843 file_ptr filepos; 1844 1845 /* File position of relocation info. */ 1846 file_ptr rel_filepos; 1847 1848 /* File position of line data. */ 1849 file_ptr line_filepos; 1850 1851 /* Pointer to data for applications. */ 1852 void *userdata; 1853 1854 /* If the SEC_IN_MEMORY flag is set, this points to the actual 1855 contents. */ 1856 unsigned char *contents; 1857 1858 /* Attached line number information. */ 1859 alent *lineno; 1860 1861 /* Number of line number records. */ 1862 unsigned int lineno_count; 1863 1864 /* Entity size for merging purposes. */ 1865 unsigned int entsize; 1866 1867 /* Points to the kept section if this section is a link-once section, 1868 and is discarded. */ 1869 struct bfd_section *kept_section; 1870 1871 /* When a section is being output, this value changes as more 1872 linenumbers are written out. */ 1873 file_ptr moving_line_filepos; 1874 1875 /* What the section number is in the target world. */ 1876 int target_index; 1877 1878 void *used_by_bfd; 1879 1880 /* If this is a constructor section then here is a list of the 1881 relocations created to relocate items within it. */ 1882 struct relent_chain *constructor_chain; 1883 1884 /* The BFD which owns the section. */ 1885 bfd *owner; 1886 1887 /* A symbol which points at this section only. */ 1888 struct bfd_symbol *symbol; 1889 struct bfd_symbol **symbol_ptr_ptr; 1890 1891 /* Early in the link process, map_head and map_tail are used to build 1892 a list of input sections attached to an output section. Later, 1893 output sections use these fields for a list of bfd_link_order 1894 structs. */ 1895 union { 1896 struct bfd_link_order *link_order; 1897 struct bfd_section *s; 1898 } map_head, map_tail; 1899 } asection; 1900 1901 /* Relax table contains information about instructions which can 1902 be removed by relaxation -- replacing a long address with a 1903 short address. */ 1904 struct relax_table { 1905 /* Address where bytes may be deleted. */ 1906 bfd_vma addr; 1907 1908 /* Number of bytes to be deleted. */ 1909 int size; 1910 }; 1911 1912 /* Note: the following are provided as inline functions rather than macros 1913 because not all callers use the return value. A macro implementation 1914 would use a comma expression, eg: "((ptr)->foo = val, TRUE)" and some 1915 compilers will complain about comma expressions that have no effect. */ 1916 static inline bfd_boolean 1917 bfd_set_section_userdata (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr, void * val) 1918 { 1919 ptr->userdata = val; 1920 return TRUE; 1921 } 1922 1923 static inline bfd_boolean 1924 bfd_set_section_vma (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr, bfd_vma val) 1925 { 1926 ptr->vma = ptr->lma = val; 1927 ptr->user_set_vma = TRUE; 1928 return TRUE; 1929 } 1930 1931 static inline bfd_boolean 1932 bfd_set_section_alignment (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr, unsigned int val) 1933 { 1934 ptr->alignment_power = val; 1935 return TRUE; 1936 } 1937 1938 /* These sections are global, and are managed by BFD. The application 1939 and target back end are not permitted to change the values in 1940 these sections. */ 1941 extern asection _bfd_std_section[4]; 1942 1943 #define BFD_ABS_SECTION_NAME "*ABS*" 1944 #define BFD_UND_SECTION_NAME "*UND*" 1945 #define BFD_COM_SECTION_NAME "*COM*" 1946 #define BFD_IND_SECTION_NAME "*IND*" 1947 1948 /* Pointer to the common section. */ 1949 #define bfd_com_section_ptr (&_bfd_std_section[0]) 1950 /* Pointer to the undefined section. */ 1951 #define bfd_und_section_ptr (&_bfd_std_section[1]) 1952 /* Pointer to the absolute section. */ 1953 #define bfd_abs_section_ptr (&_bfd_std_section[2]) 1954 /* Pointer to the indirect section. */ 1955 #define bfd_ind_section_ptr (&_bfd_std_section[3]) 1956 1957 #define bfd_is_und_section(sec) ((sec) == bfd_und_section_ptr) 1958 #define bfd_is_abs_section(sec) ((sec) == bfd_abs_section_ptr) 1959 #define bfd_is_ind_section(sec) ((sec) == bfd_ind_section_ptr) 1960 1961 #define bfd_is_const_section(SEC) \ 1962 ( ((SEC) == bfd_abs_section_ptr) \ 1963 || ((SEC) == bfd_und_section_ptr) \ 1964 || ((SEC) == bfd_com_section_ptr) \ 1965 || ((SEC) == bfd_ind_section_ptr)) 1966 1967 /* Macros to handle insertion and deletion of a bfd's sections. These 1968 only handle the list pointers, ie. do not adjust section_count, 1969 target_index etc. */ 1970 #define bfd_section_list_remove(ABFD, S) \ 1971 do \ 1972 { \ 1973 asection *_s = S; \ 1974 asection *_next = _s->next; \ 1975 asection *_prev = _s->prev; \ 1976 if (_prev) \ 1977 _prev->next = _next; \ 1978 else \ 1979 (ABFD)->sections = _next; \ 1980 if (_next) \ 1981 _next->prev = _prev; \ 1982 else \ 1983 (ABFD)->section_last = _prev; \ 1984 } \ 1985 while (0) 1986 #define bfd_section_list_append(ABFD, S) \ 1987 do \ 1988 { \ 1989 asection *_s = S; \ 1990 bfd *_abfd = ABFD; \ 1991 _s->next = NULL; \ 1992 if (_abfd->section_last) \ 1993 { \ 1994 _s->prev = _abfd->section_last; \ 1995 _abfd->section_last->next = _s; \ 1996 } \ 1997 else \ 1998 { \ 1999 _s->prev = NULL; \ 2000 _abfd->sections = _s; \ 2001 } \ 2002 _abfd->section_last = _s; \ 2003 } \ 2004 while (0) 2005 #define bfd_section_list_prepend(ABFD, S) \ 2006 do \ 2007 { \ 2008 asection *_s = S; \ 2009 bfd *_abfd = ABFD; \ 2010 _s->prev = NULL; \ 2011 if (_abfd->sections) \ 2012 { \ 2013 _s->next = _abfd->sections; \ 2014 _abfd->sections->prev = _s; \ 2015 } \ 2016 else \ 2017 { \ 2018 _s->next = NULL; \ 2019 _abfd->section_last = _s; \ 2020 } \ 2021 _abfd->sections = _s; \ 2022 } \ 2023 while (0) 2024 #define bfd_section_list_insert_after(ABFD, A, S) \ 2025 do \ 2026 { \ 2027 asection *_a = A; \ 2028 asection *_s = S; \ 2029 asection *_next = _a->next; \ 2030 _s->next = _next; \ 2031 _s->prev = _a; \ 2032 _a->next = _s; \ 2033 if (_next) \ 2034 _next->prev = _s; \ 2035 else \ 2036 (ABFD)->section_last = _s; \ 2037 } \ 2038 while (0) 2039 #define bfd_section_list_insert_before(ABFD, B, S) \ 2040 do \ 2041 { \ 2042 asection *_b = B; \ 2043 asection *_s = S; \ 2044 asection *_prev = _b->prev; \ 2045 _s->prev = _prev; \ 2046 _s->next = _b; \ 2047 _b->prev = _s; \ 2048 if (_prev) \ 2049 _prev->next = _s; \ 2050 else \ 2051 (ABFD)->sections = _s; \ 2052 } \ 2053 while (0) 2054 #define bfd_section_removed_from_list(ABFD, S) \ 2055 ((S)->next == NULL ? (ABFD)->section_last != (S) : (S)->next->prev != (S)) 2056 2057 #define BFD_FAKE_SECTION(SEC, FLAGS, SYM, NAME, IDX) \ 2058 /* name, id, index, next, prev, flags, user_set_vma, */ \ 2059 { NAME, IDX, 0, NULL, NULL, FLAGS, 0, \ 2060 \ 2061 /* linker_mark, linker_has_input, gc_mark, decompress_status, */ \ 2062 0, 0, 1, 0, \ 2063 \ 2064 /* segment_mark, sec_info_type, use_rela_p, */ \ 2065 0, 0, 0, \ 2066 \ 2067 /* sec_flg0, sec_flg1, sec_flg2, sec_flg3, sec_flg4, sec_flg5, */ \ 2068 0, 0, 0, 0, 0, 0, \ 2069 \ 2070 /* vma, lma, size, rawsize, compressed_size, relax, relax_count, */ \ 2071 0, 0, 0, 0, 0, 0, 0, \ 2072 \ 2073 /* output_offset, output_section, alignment_power, */ \ 2074 0, &SEC, 0, \ 2075 \ 2076 /* relocation, orelocation, reloc_count, filepos, rel_filepos, */ \ 2077 NULL, NULL, 0, 0, 0, \ 2078 \ 2079 /* line_filepos, userdata, contents, lineno, lineno_count, */ \ 2080 0, NULL, NULL, NULL, 0, \ 2081 \ 2082 /* entsize, kept_section, moving_line_filepos, */ \ 2083 0, NULL, 0, \ 2084 \ 2085 /* target_index, used_by_bfd, constructor_chain, owner, */ \ 2086 0, NULL, NULL, NULL, \ 2087 \ 2088 /* symbol, symbol_ptr_ptr, */ \ 2089 (struct bfd_symbol *) SYM, &SEC.symbol, \ 2090 \ 2091 /* map_head, map_tail */ \ 2092 { NULL }, { NULL } \ 2093 } 2094 2095 2096File: bfd.info, Node: section prototypes, Prev: typedef asection, Up: Sections 2097 20982.6.5 Section prototypes 2099------------------------ 2100 2101These are the functions exported by the section handling part of BFD. 2102 21032.6.5.1 `bfd_section_list_clear' 2104................................ 2105 2106*Synopsis* 2107 void bfd_section_list_clear (bfd *); 2108 *Description* 2109Clears the section list, and also resets the section count and hash 2110table entries. 2111 21122.6.5.2 `bfd_get_section_by_name' 2113................................. 2114 2115*Synopsis* 2116 asection *bfd_get_section_by_name (bfd *abfd, const char *name); 2117 *Description* 2118Return the most recently created section attached to ABFD named NAME. 2119Return NULL if no such section exists. 2120 21212.6.5.3 `bfd_get_next_section_by_name' 2122...................................... 2123 2124*Synopsis* 2125 asection *bfd_get_next_section_by_name (bfd *ibfd, asection *sec); 2126 *Description* 2127Given SEC is a section returned by `bfd_get_section_by_name', return 2128the next most recently created section attached to the same BFD with 2129the same name, or if no such section exists in the same BFD and IBFD is 2130non-NULL, the next section with the same name in any input BFD 2131following IBFD. Return NULL on finding no section. 2132 21332.6.5.4 `bfd_get_linker_section' 2134................................ 2135 2136*Synopsis* 2137 asection *bfd_get_linker_section (bfd *abfd, const char *name); 2138 *Description* 2139Return the linker created section attached to ABFD named NAME. Return 2140NULL if no such section exists. 2141 21422.6.5.5 `bfd_get_section_by_name_if' 2143.................................... 2144 2145*Synopsis* 2146 asection *bfd_get_section_by_name_if 2147 (bfd *abfd, 2148 const char *name, 2149 bfd_boolean (*func) (bfd *abfd, asection *sect, void *obj), 2150 void *obj); 2151 *Description* 2152Call the provided function FUNC for each section attached to the BFD 2153ABFD whose name matches NAME, passing OBJ as an argument. The function 2154will be called as if by 2155 2156 func (abfd, the_section, obj); 2157 2158 It returns the first section for which FUNC returns true, otherwise 2159`NULL'. 2160 21612.6.5.6 `bfd_get_unique_section_name' 2162..................................... 2163 2164*Synopsis* 2165 char *bfd_get_unique_section_name 2166 (bfd *abfd, const char *templat, int *count); 2167 *Description* 2168Invent a section name that is unique in ABFD by tacking a dot and a 2169digit suffix onto the original TEMPLAT. If COUNT is non-NULL, then it 2170specifies the first number tried as a suffix to generate a unique name. 2171The value pointed to by COUNT will be incremented in this case. 2172 21732.6.5.7 `bfd_make_section_old_way' 2174.................................. 2175 2176*Synopsis* 2177 asection *bfd_make_section_old_way (bfd *abfd, const char *name); 2178 *Description* 2179Create a new empty section called NAME and attach it to the end of the 2180chain of sections for the BFD ABFD. An attempt to create a section with 2181a name which is already in use returns its pointer without changing the 2182section chain. 2183 2184 It has the funny name since this is the way it used to be before it 2185was rewritten.... 2186 2187 Possible errors are: 2188 * `bfd_error_invalid_operation' - If output has already started for 2189 this BFD. 2190 2191 * `bfd_error_no_memory' - If memory allocation fails. 2192 21932.6.5.8 `bfd_make_section_anyway_with_flags' 2194............................................ 2195 2196*Synopsis* 2197 asection *bfd_make_section_anyway_with_flags 2198 (bfd *abfd, const char *name, flagword flags); 2199 *Description* 2200Create a new empty section called NAME and attach it to the end of the 2201chain of sections for ABFD. Create a new section even if there is 2202already a section with that name. Also set the attributes of the new 2203section to the value FLAGS. 2204 2205 Return `NULL' and set `bfd_error' on error; possible errors are: 2206 * `bfd_error_invalid_operation' - If output has already started for 2207 ABFD. 2208 2209 * `bfd_error_no_memory' - If memory allocation fails. 2210 22112.6.5.9 `bfd_make_section_anyway' 2212................................. 2213 2214*Synopsis* 2215 asection *bfd_make_section_anyway (bfd *abfd, const char *name); 2216 *Description* 2217Create a new empty section called NAME and attach it to the end of the 2218chain of sections for ABFD. Create a new section even if there is 2219already a section with that name. 2220 2221 Return `NULL' and set `bfd_error' on error; possible errors are: 2222 * `bfd_error_invalid_operation' - If output has already started for 2223 ABFD. 2224 2225 * `bfd_error_no_memory' - If memory allocation fails. 2226 22272.6.5.10 `bfd_make_section_with_flags' 2228...................................... 2229 2230*Synopsis* 2231 asection *bfd_make_section_with_flags 2232 (bfd *, const char *name, flagword flags); 2233 *Description* 2234Like `bfd_make_section_anyway', but return `NULL' (without calling 2235bfd_set_error ()) without changing the section chain if there is 2236already a section named NAME. Also set the attributes of the new 2237section to the value FLAGS. If there is an error, return `NULL' and set 2238`bfd_error'. 2239 22402.6.5.11 `bfd_make_section' 2241........................... 2242 2243*Synopsis* 2244 asection *bfd_make_section (bfd *, const char *name); 2245 *Description* 2246Like `bfd_make_section_anyway', but return `NULL' (without calling 2247bfd_set_error ()) without changing the section chain if there is 2248already a section named NAME. If there is an error, return `NULL' and 2249set `bfd_error'. 2250 22512.6.5.12 `bfd_get_next_section_id' 2252.................................. 2253 2254*Synopsis* 2255 int bfd_get_next_section_id (void); 2256 *Description* 2257Returns the id that the next section created will have. 2258 22592.6.5.13 `bfd_set_section_flags' 2260................................ 2261 2262*Synopsis* 2263 bfd_boolean bfd_set_section_flags 2264 (bfd *abfd, asection *sec, flagword flags); 2265 *Description* 2266Set the attributes of the section SEC in the BFD ABFD to the value 2267FLAGS. Return `TRUE' on success, `FALSE' on error. Possible error 2268returns are: 2269 2270 * `bfd_error_invalid_operation' - The section cannot have one or 2271 more of the attributes requested. For example, a .bss section in 2272 `a.out' may not have the `SEC_HAS_CONTENTS' field set. 2273 22742.6.5.14 `bfd_rename_section' 2275............................. 2276 2277*Synopsis* 2278 void bfd_rename_section 2279 (bfd *abfd, asection *sec, const char *newname); 2280 *Description* 2281Rename section SEC in ABFD to NEWNAME. 2282 22832.6.5.15 `bfd_map_over_sections' 2284................................ 2285 2286*Synopsis* 2287 void bfd_map_over_sections 2288 (bfd *abfd, 2289 void (*func) (bfd *abfd, asection *sect, void *obj), 2290 void *obj); 2291 *Description* 2292Call the provided function FUNC for each section attached to the BFD 2293ABFD, passing OBJ as an argument. The function will be called as if by 2294 2295 func (abfd, the_section, obj); 2296 2297 This is the preferred method for iterating over sections; an 2298alternative would be to use a loop: 2299 2300 asection *p; 2301 for (p = abfd->sections; p != NULL; p = p->next) 2302 func (abfd, p, ...) 2303 23042.6.5.16 `bfd_sections_find_if' 2305............................... 2306 2307*Synopsis* 2308 asection *bfd_sections_find_if 2309 (bfd *abfd, 2310 bfd_boolean (*operation) (bfd *abfd, asection *sect, void *obj), 2311 void *obj); 2312 *Description* 2313Call the provided function OPERATION for each section attached to the 2314BFD ABFD, passing OBJ as an argument. The function will be called as if 2315by 2316 2317 operation (abfd, the_section, obj); 2318 2319 It returns the first section for which OPERATION returns true. 2320 23212.6.5.17 `bfd_set_section_size' 2322............................... 2323 2324*Synopsis* 2325 bfd_boolean bfd_set_section_size 2326 (bfd *abfd, asection *sec, bfd_size_type val); 2327 *Description* 2328Set SEC to the size VAL. If the operation is ok, then `TRUE' is 2329returned, else `FALSE'. 2330 2331 Possible error returns: 2332 * `bfd_error_invalid_operation' - Writing has started to the BFD, so 2333 setting the size is invalid. 2334 23352.6.5.18 `bfd_set_section_contents' 2336................................... 2337 2338*Synopsis* 2339 bfd_boolean bfd_set_section_contents 2340 (bfd *abfd, asection *section, const void *data, 2341 file_ptr offset, bfd_size_type count); 2342 *Description* 2343Sets the contents of the section SECTION in BFD ABFD to the data 2344starting in memory at DATA. The data is written to the output section 2345starting at offset OFFSET for COUNT octets. 2346 2347 Normally `TRUE' is returned, else `FALSE'. Possible error returns 2348are: 2349 * `bfd_error_no_contents' - The output section does not have the 2350 `SEC_HAS_CONTENTS' attribute, so nothing can be written to it. 2351 2352 * and some more too 2353 This routine is front end to the back end function 2354`_bfd_set_section_contents'. 2355 23562.6.5.19 `bfd_get_section_contents' 2357................................... 2358 2359*Synopsis* 2360 bfd_boolean bfd_get_section_contents 2361 (bfd *abfd, asection *section, void *location, file_ptr offset, 2362 bfd_size_type count); 2363 *Description* 2364Read data from SECTION in BFD ABFD into memory starting at LOCATION. 2365The data is read at an offset of OFFSET from the start of the input 2366section, and is read for COUNT bytes. 2367 2368 If the contents of a constructor with the `SEC_CONSTRUCTOR' flag set 2369are requested or if the section does not have the `SEC_HAS_CONTENTS' 2370flag set, then the LOCATION is filled with zeroes. If no errors occur, 2371`TRUE' is returned, else `FALSE'. 2372 23732.6.5.20 `bfd_malloc_and_get_section' 2374..................................... 2375 2376*Synopsis* 2377 bfd_boolean bfd_malloc_and_get_section 2378 (bfd *abfd, asection *section, bfd_byte **buf); 2379 *Description* 2380Read all data from SECTION in BFD ABFD into a buffer, *BUF, malloc'd by 2381this function. 2382 23832.6.5.21 `bfd_copy_private_section_data' 2384........................................ 2385 2386*Synopsis* 2387 bfd_boolean bfd_copy_private_section_data 2388 (bfd *ibfd, asection *isec, bfd *obfd, asection *osec); 2389 *Description* 2390Copy private section information from ISEC in the BFD IBFD to the 2391section OSEC in the BFD OBFD. Return `TRUE' on success, `FALSE' on 2392error. Possible error returns are: 2393 2394 * `bfd_error_no_memory' - Not enough memory exists to create private 2395 data for OSEC. 2396 2397 #define bfd_copy_private_section_data(ibfd, isection, obfd, osection) \ 2398 BFD_SEND (obfd, _bfd_copy_private_section_data, \ 2399 (ibfd, isection, obfd, osection)) 2400 24012.6.5.22 `bfd_generic_is_group_section' 2402....................................... 2403 2404*Synopsis* 2405 bfd_boolean bfd_generic_is_group_section (bfd *, const asection *sec); 2406 *Description* 2407Returns TRUE if SEC is a member of a group. 2408 24092.6.5.23 `bfd_generic_discard_group' 2410.................................... 2411 2412*Synopsis* 2413 bfd_boolean bfd_generic_discard_group (bfd *abfd, asection *group); 2414 *Description* 2415Remove all members of GROUP from the output. 2416 2417 2418File: bfd.info, Node: Symbols, Next: Archives, Prev: Sections, Up: BFD front end 2419 24202.7 Symbols 2421=========== 2422 2423BFD tries to maintain as much symbol information as it can when it 2424moves information from file to file. BFD passes information to 2425applications though the `asymbol' structure. When the application 2426requests the symbol table, BFD reads the table in the native form and 2427translates parts of it into the internal format. To maintain more than 2428the information passed to applications, some targets keep some 2429information "behind the scenes" in a structure only the particular back 2430end knows about. For example, the coff back end keeps the original 2431symbol table structure as well as the canonical structure when a BFD is 2432read in. On output, the coff back end can reconstruct the output symbol 2433table so that no information is lost, even information unique to coff 2434which BFD doesn't know or understand. If a coff symbol table were read, 2435but were written through an a.out back end, all the coff specific 2436information would be lost. The symbol table of a BFD is not necessarily 2437read in until a canonicalize request is made. Then the BFD back end 2438fills in a table provided by the application with pointers to the 2439canonical information. To output symbols, the application provides BFD 2440with a table of pointers to pointers to `asymbol's. This allows 2441applications like the linker to output a symbol as it was read, since 2442the "behind the scenes" information will be still available. 2443 2444* Menu: 2445 2446* Reading Symbols:: 2447* Writing Symbols:: 2448* Mini Symbols:: 2449* typedef asymbol:: 2450* symbol handling functions:: 2451 2452 2453File: bfd.info, Node: Reading Symbols, Next: Writing Symbols, Prev: Symbols, Up: Symbols 2454 24552.7.1 Reading symbols 2456--------------------- 2457 2458There are two stages to reading a symbol table from a BFD: allocating 2459storage, and the actual reading process. This is an excerpt from an 2460application which reads the symbol table: 2461 2462 long storage_needed; 2463 asymbol **symbol_table; 2464 long number_of_symbols; 2465 long i; 2466 2467 storage_needed = bfd_get_symtab_upper_bound (abfd); 2468 2469 if (storage_needed < 0) 2470 FAIL 2471 2472 if (storage_needed == 0) 2473 return; 2474 2475 symbol_table = xmalloc (storage_needed); 2476 ... 2477 number_of_symbols = 2478 bfd_canonicalize_symtab (abfd, symbol_table); 2479 2480 if (number_of_symbols < 0) 2481 FAIL 2482 2483 for (i = 0; i < number_of_symbols; i++) 2484 process_symbol (symbol_table[i]); 2485 2486 All storage for the symbols themselves is in an objalloc connected 2487to the BFD; it is freed when the BFD is closed. 2488 2489 2490File: bfd.info, Node: Writing Symbols, Next: Mini Symbols, Prev: Reading Symbols, Up: Symbols 2491 24922.7.2 Writing symbols 2493--------------------- 2494 2495Writing of a symbol table is automatic when a BFD open for writing is 2496closed. The application attaches a vector of pointers to pointers to 2497symbols to the BFD being written, and fills in the symbol count. The 2498close and cleanup code reads through the table provided and performs 2499all the necessary operations. The BFD output code must always be 2500provided with an "owned" symbol: one which has come from another BFD, 2501or one which has been created using `bfd_make_empty_symbol'. Here is an 2502example showing the creation of a symbol table with only one element: 2503 2504 #include "sysdep.h" 2505 #include "bfd.h" 2506 int main (void) 2507 { 2508 bfd *abfd; 2509 asymbol *ptrs[2]; 2510 asymbol *new; 2511 2512 abfd = bfd_openw ("foo","a.out-sunos-big"); 2513 bfd_set_format (abfd, bfd_object); 2514 new = bfd_make_empty_symbol (abfd); 2515 new->name = "dummy_symbol"; 2516 new->section = bfd_make_section_old_way (abfd, ".text"); 2517 new->flags = BSF_GLOBAL; 2518 new->value = 0x12345; 2519 2520 ptrs[0] = new; 2521 ptrs[1] = 0; 2522 2523 bfd_set_symtab (abfd, ptrs, 1); 2524 bfd_close (abfd); 2525 return 0; 2526 } 2527 2528 ./makesym 2529 nm foo 2530 00012345 A dummy_symbol 2531 2532 Many formats cannot represent arbitrary symbol information; for 2533instance, the `a.out' object format does not allow an arbitrary number 2534of sections. A symbol pointing to a section which is not one of 2535`.text', `.data' or `.bss' cannot be described. 2536 2537 2538File: bfd.info, Node: Mini Symbols, Next: typedef asymbol, Prev: Writing Symbols, Up: Symbols 2539 25402.7.3 Mini Symbols 2541------------------ 2542 2543Mini symbols provide read-only access to the symbol table. They use 2544less memory space, but require more time to access. They can be useful 2545for tools like nm or objdump, which may have to handle symbol tables of 2546extremely large executables. 2547 2548 The `bfd_read_minisymbols' function will read the symbols into 2549memory in an internal form. It will return a `void *' pointer to a 2550block of memory, a symbol count, and the size of each symbol. The 2551pointer is allocated using `malloc', and should be freed by the caller 2552when it is no longer needed. 2553 2554 The function `bfd_minisymbol_to_symbol' will take a pointer to a 2555minisymbol, and a pointer to a structure returned by 2556`bfd_make_empty_symbol', and return a `asymbol' structure. The return 2557value may or may not be the same as the value from 2558`bfd_make_empty_symbol' which was passed in. 2559 2560 2561File: bfd.info, Node: typedef asymbol, Next: symbol handling functions, Prev: Mini Symbols, Up: Symbols 2562 25632.7.4 typedef asymbol 2564--------------------- 2565 2566An `asymbol' has the form: 2567 2568 2569 typedef struct bfd_symbol 2570 { 2571 /* A pointer to the BFD which owns the symbol. This information 2572 is necessary so that a back end can work out what additional 2573 information (invisible to the application writer) is carried 2574 with the symbol. 2575 2576 This field is *almost* redundant, since you can use section->owner 2577 instead, except that some symbols point to the global sections 2578 bfd_{abs,com,und}_section. This could be fixed by making 2579 these globals be per-bfd (or per-target-flavor). FIXME. */ 2580 struct bfd *the_bfd; /* Use bfd_asymbol_bfd(sym) to access this field. */ 2581 2582 /* The text of the symbol. The name is left alone, and not copied; the 2583 application may not alter it. */ 2584 const char *name; 2585 2586 /* The value of the symbol. This really should be a union of a 2587 numeric value with a pointer, since some flags indicate that 2588 a pointer to another symbol is stored here. */ 2589 symvalue value; 2590 2591 /* Attributes of a symbol. */ 2592 #define BSF_NO_FLAGS 0x00 2593 2594 /* The symbol has local scope; `static' in `C'. The value 2595 is the offset into the section of the data. */ 2596 #define BSF_LOCAL (1 << 0) 2597 2598 /* The symbol has global scope; initialized data in `C'. The 2599 value is the offset into the section of the data. */ 2600 #define BSF_GLOBAL (1 << 1) 2601 2602 /* The symbol has global scope and is exported. The value is 2603 the offset into the section of the data. */ 2604 #define BSF_EXPORT BSF_GLOBAL /* No real difference. */ 2605 2606 /* A normal C symbol would be one of: 2607 `BSF_LOCAL', `BSF_UNDEFINED' or `BSF_GLOBAL'. */ 2608 2609 /* The symbol is a debugging record. The value has an arbitrary 2610 meaning, unless BSF_DEBUGGING_RELOC is also set. */ 2611 #define BSF_DEBUGGING (1 << 2) 2612 2613 /* The symbol denotes a function entry point. Used in ELF, 2614 perhaps others someday. */ 2615 #define BSF_FUNCTION (1 << 3) 2616 2617 /* Used by the linker. */ 2618 #define BSF_KEEP (1 << 5) 2619 2620 /* An ELF common symbol. */ 2621 #define BSF_ELF_COMMON (1 << 6) 2622 2623 /* A weak global symbol, overridable without warnings by 2624 a regular global symbol of the same name. */ 2625 #define BSF_WEAK (1 << 7) 2626 2627 /* This symbol was created to point to a section, e.g. ELF's 2628 STT_SECTION symbols. */ 2629 #define BSF_SECTION_SYM (1 << 8) 2630 2631 /* The symbol used to be a common symbol, but now it is 2632 allocated. */ 2633 #define BSF_OLD_COMMON (1 << 9) 2634 2635 /* In some files the type of a symbol sometimes alters its 2636 location in an output file - ie in coff a `ISFCN' symbol 2637 which is also `C_EXT' symbol appears where it was 2638 declared and not at the end of a section. This bit is set 2639 by the target BFD part to convey this information. */ 2640 #define BSF_NOT_AT_END (1 << 10) 2641 2642 /* Signal that the symbol is the label of constructor section. */ 2643 #define BSF_CONSTRUCTOR (1 << 11) 2644 2645 /* Signal that the symbol is a warning symbol. The name is a 2646 warning. The name of the next symbol is the one to warn about; 2647 if a reference is made to a symbol with the same name as the next 2648 symbol, a warning is issued by the linker. */ 2649 #define BSF_WARNING (1 << 12) 2650 2651 /* Signal that the symbol is indirect. This symbol is an indirect 2652 pointer to the symbol with the same name as the next symbol. */ 2653 #define BSF_INDIRECT (1 << 13) 2654 2655 /* BSF_FILE marks symbols that contain a file name. This is used 2656 for ELF STT_FILE symbols. */ 2657 #define BSF_FILE (1 << 14) 2658 2659 /* Symbol is from dynamic linking information. */ 2660 #define BSF_DYNAMIC (1 << 15) 2661 2662 /* The symbol denotes a data object. Used in ELF, and perhaps 2663 others someday. */ 2664 #define BSF_OBJECT (1 << 16) 2665 2666 /* This symbol is a debugging symbol. The value is the offset 2667 into the section of the data. BSF_DEBUGGING should be set 2668 as well. */ 2669 #define BSF_DEBUGGING_RELOC (1 << 17) 2670 2671 /* This symbol is thread local. Used in ELF. */ 2672 #define BSF_THREAD_LOCAL (1 << 18) 2673 2674 /* This symbol represents a complex relocation expression, 2675 with the expression tree serialized in the symbol name. */ 2676 #define BSF_RELC (1 << 19) 2677 2678 /* This symbol represents a signed complex relocation expression, 2679 with the expression tree serialized in the symbol name. */ 2680 #define BSF_SRELC (1 << 20) 2681 2682 /* This symbol was created by bfd_get_synthetic_symtab. */ 2683 #define BSF_SYNTHETIC (1 << 21) 2684 2685 /* This symbol is an indirect code object. Unrelated to BSF_INDIRECT. 2686 The dynamic linker will compute the value of this symbol by 2687 calling the function that it points to. BSF_FUNCTION must 2688 also be also set. */ 2689 #define BSF_GNU_INDIRECT_FUNCTION (1 << 22) 2690 /* This symbol is a globally unique data object. The dynamic linker 2691 will make sure that in the entire process there is just one symbol 2692 with this name and type in use. BSF_OBJECT must also be set. */ 2693 #define BSF_GNU_UNIQUE (1 << 23) 2694 2695 flagword flags; 2696 2697 /* A pointer to the section to which this symbol is 2698 relative. This will always be non NULL, there are special 2699 sections for undefined and absolute symbols. */ 2700 struct bfd_section *section; 2701 2702 /* Back end special data. */ 2703 union 2704 { 2705 void *p; 2706 bfd_vma i; 2707 } 2708 udata; 2709 } 2710 asymbol; 2711 2712 2713File: bfd.info, Node: symbol handling functions, Prev: typedef asymbol, Up: Symbols 2714 27152.7.5 Symbol handling functions 2716------------------------------- 2717 27182.7.5.1 `bfd_get_symtab_upper_bound' 2719.................................... 2720 2721*Description* 2722Return the number of bytes required to store a vector of pointers to 2723`asymbols' for all the symbols in the BFD ABFD, including a terminal 2724NULL pointer. If there are no symbols in the BFD, then return 0. If an 2725error occurs, return -1. 2726 #define bfd_get_symtab_upper_bound(abfd) \ 2727 BFD_SEND (abfd, _bfd_get_symtab_upper_bound, (abfd)) 2728 27292.7.5.2 `bfd_is_local_label' 2730............................ 2731 2732*Synopsis* 2733 bfd_boolean bfd_is_local_label (bfd *abfd, asymbol *sym); 2734 *Description* 2735Return TRUE if the given symbol SYM in the BFD ABFD is a compiler 2736generated local label, else return FALSE. 2737 27382.7.5.3 `bfd_is_local_label_name' 2739................................. 2740 2741*Synopsis* 2742 bfd_boolean bfd_is_local_label_name (bfd *abfd, const char *name); 2743 *Description* 2744Return TRUE if a symbol with the name NAME in the BFD ABFD is a 2745compiler generated local label, else return FALSE. This just checks 2746whether the name has the form of a local label. 2747 #define bfd_is_local_label_name(abfd, name) \ 2748 BFD_SEND (abfd, _bfd_is_local_label_name, (abfd, name)) 2749 27502.7.5.4 `bfd_is_target_special_symbol' 2751...................................... 2752 2753*Synopsis* 2754 bfd_boolean bfd_is_target_special_symbol (bfd *abfd, asymbol *sym); 2755 *Description* 2756Return TRUE iff a symbol SYM in the BFD ABFD is something special to 2757the particular target represented by the BFD. Such symbols should 2758normally not be mentioned to the user. 2759 #define bfd_is_target_special_symbol(abfd, sym) \ 2760 BFD_SEND (abfd, _bfd_is_target_special_symbol, (abfd, sym)) 2761 27622.7.5.5 `bfd_canonicalize_symtab' 2763................................. 2764 2765*Description* 2766Read the symbols from the BFD ABFD, and fills in the vector LOCATION 2767with pointers to the symbols and a trailing NULL. Return the actual 2768number of symbol pointers, not including the NULL. 2769 #define bfd_canonicalize_symtab(abfd, location) \ 2770 BFD_SEND (abfd, _bfd_canonicalize_symtab, (abfd, location)) 2771 27722.7.5.6 `bfd_set_symtab' 2773........................ 2774 2775*Synopsis* 2776 bfd_boolean bfd_set_symtab 2777 (bfd *abfd, asymbol **location, unsigned int count); 2778 *Description* 2779Arrange that when the output BFD ABFD is closed, the table LOCATION of 2780COUNT pointers to symbols will be written. 2781 27822.7.5.7 `bfd_print_symbol_vandf' 2783................................ 2784 2785*Synopsis* 2786 void bfd_print_symbol_vandf (bfd *abfd, void *file, asymbol *symbol); 2787 *Description* 2788Print the value and flags of the SYMBOL supplied to the stream FILE. 2789 27902.7.5.8 `bfd_make_empty_symbol' 2791............................... 2792 2793*Description* 2794Create a new `asymbol' structure for the BFD ABFD and return a pointer 2795to it. 2796 2797 This routine is necessary because each back end has private 2798information surrounding the `asymbol'. Building your own `asymbol' and 2799pointing to it will not create the private information, and will cause 2800problems later on. 2801 #define bfd_make_empty_symbol(abfd) \ 2802 BFD_SEND (abfd, _bfd_make_empty_symbol, (abfd)) 2803 28042.7.5.9 `_bfd_generic_make_empty_symbol' 2805........................................ 2806 2807*Synopsis* 2808 asymbol *_bfd_generic_make_empty_symbol (bfd *); 2809 *Description* 2810Create a new `asymbol' structure for the BFD ABFD and return a pointer 2811to it. Used by core file routines, binary back-end and anywhere else 2812where no private info is needed. 2813 28142.7.5.10 `bfd_make_debug_symbol' 2815................................ 2816 2817*Description* 2818Create a new `asymbol' structure for the BFD ABFD, to be used as a 2819debugging symbol. Further details of its use have yet to be worked out. 2820 #define bfd_make_debug_symbol(abfd,ptr,size) \ 2821 BFD_SEND (abfd, _bfd_make_debug_symbol, (abfd, ptr, size)) 2822 28232.7.5.11 `bfd_decode_symclass' 2824.............................. 2825 2826*Description* 2827Return a character corresponding to the symbol class of SYMBOL, or '?' 2828for an unknown class. 2829 2830 *Synopsis* 2831 int bfd_decode_symclass (asymbol *symbol); 2832 28332.7.5.12 `bfd_is_undefined_symclass' 2834.................................... 2835 2836*Description* 2837Returns non-zero if the class symbol returned by bfd_decode_symclass 2838represents an undefined symbol. Returns zero otherwise. 2839 2840 *Synopsis* 2841 bfd_boolean bfd_is_undefined_symclass (int symclass); 2842 28432.7.5.13 `bfd_symbol_info' 2844.......................... 2845 2846*Description* 2847Fill in the basic info about symbol that nm needs. Additional info may 2848be added by the back-ends after calling this function. 2849 2850 *Synopsis* 2851 void bfd_symbol_info (asymbol *symbol, symbol_info *ret); 2852 28532.7.5.14 `bfd_copy_private_symbol_data' 2854....................................... 2855 2856*Synopsis* 2857 bfd_boolean bfd_copy_private_symbol_data 2858 (bfd *ibfd, asymbol *isym, bfd *obfd, asymbol *osym); 2859 *Description* 2860Copy private symbol information from ISYM in the BFD IBFD to the symbol 2861OSYM in the BFD OBFD. Return `TRUE' on success, `FALSE' on error. 2862Possible error returns are: 2863 2864 * `bfd_error_no_memory' - Not enough memory exists to create private 2865 data for OSEC. 2866 2867 #define bfd_copy_private_symbol_data(ibfd, isymbol, obfd, osymbol) \ 2868 BFD_SEND (obfd, _bfd_copy_private_symbol_data, \ 2869 (ibfd, isymbol, obfd, osymbol)) 2870 2871 2872File: bfd.info, Node: Archives, Next: Formats, Prev: Symbols, Up: BFD front end 2873 28742.8 Archives 2875============ 2876 2877*Description* 2878An archive (or library) is just another BFD. It has a symbol table, 2879although there's not much a user program will do with it. 2880 2881 The big difference between an archive BFD and an ordinary BFD is 2882that the archive doesn't have sections. Instead it has a chain of BFDs 2883that are considered its contents. These BFDs can be manipulated like 2884any other. The BFDs contained in an archive opened for reading will 2885all be opened for reading. You may put either input or output BFDs 2886into an archive opened for output; they will be handled correctly when 2887the archive is closed. 2888 2889 Use `bfd_openr_next_archived_file' to step through the contents of 2890an archive opened for input. You don't have to read the entire archive 2891if you don't want to! Read it until you find what you want. 2892 2893 A BFD returned by `bfd_openr_next_archived_file' can be closed 2894manually with `bfd_close'. If you do not close it, then a second 2895iteration through the members of an archive may return the same BFD. 2896If you close the archive BFD, then all the member BFDs will 2897automatically be closed as well. 2898 2899 Archive contents of output BFDs are chained through the 2900`archive_next' pointer in a BFD. The first one is findable through the 2901`archive_head' slot of the archive. Set it with `bfd_set_archive_head' 2902(q.v.). A given BFD may be in only one open output archive at a time. 2903 2904 As expected, the BFD archive code is more general than the archive 2905code of any given environment. BFD archives may contain files of 2906different formats (e.g., a.out and coff) and even different 2907architectures. You may even place archives recursively into archives! 2908 2909 This can cause unexpected confusion, since some archive formats are 2910more expressive than others. For instance, Intel COFF archives can 2911preserve long filenames; SunOS a.out archives cannot. If you move a 2912file from the first to the second format and back again, the filename 2913may be truncated. Likewise, different a.out environments have different 2914conventions as to how they truncate filenames, whether they preserve 2915directory names in filenames, etc. When interoperating with native 2916tools, be sure your files are homogeneous. 2917 2918 Beware: most of these formats do not react well to the presence of 2919spaces in filenames. We do the best we can, but can't always handle 2920this case due to restrictions in the format of archives. Many Unix 2921utilities are braindead in regards to spaces and such in filenames 2922anyway, so this shouldn't be much of a restriction. 2923 2924 Archives are supported in BFD in `archive.c'. 2925 29262.8.1 Archive functions 2927----------------------- 2928 29292.8.1.1 `bfd_get_next_mapent' 2930............................. 2931 2932*Synopsis* 2933 symindex bfd_get_next_mapent 2934 (bfd *abfd, symindex previous, carsym **sym); 2935 *Description* 2936Step through archive ABFD's symbol table (if it has one). Successively 2937update SYM with the next symbol's information, returning that symbol's 2938(internal) index into the symbol table. 2939 2940 Supply `BFD_NO_MORE_SYMBOLS' as the PREVIOUS entry to get the first 2941one; returns `BFD_NO_MORE_SYMBOLS' when you've already got the last one. 2942 2943 A `carsym' is a canonical archive symbol. The only user-visible 2944element is its name, a null-terminated string. 2945 29462.8.1.2 `bfd_set_archive_head' 2947.............................. 2948 2949*Synopsis* 2950 bfd_boolean bfd_set_archive_head (bfd *output, bfd *new_head); 2951 *Description* 2952Set the head of the chain of BFDs contained in the archive OUTPUT to 2953NEW_HEAD. 2954 29552.8.1.3 `bfd_openr_next_archived_file' 2956...................................... 2957 2958*Synopsis* 2959 bfd *bfd_openr_next_archived_file (bfd *archive, bfd *previous); 2960 *Description* 2961Provided a BFD, ARCHIVE, containing an archive and NULL, open an input 2962BFD on the first contained element and returns that. Subsequent calls 2963should pass the archive and the previous return value to return a 2964created BFD to the next contained element. NULL is returned when there 2965are no more. 2966 2967 2968File: bfd.info, Node: Formats, Next: Relocations, Prev: Archives, Up: BFD front end 2969 29702.9 File formats 2971================ 2972 2973A format is a BFD concept of high level file contents type. The formats 2974supported by BFD are: 2975 2976 * `bfd_object' 2977 The BFD may contain data, symbols, relocations and debug info. 2978 2979 * `bfd_archive' 2980 The BFD contains other BFDs and an optional index. 2981 2982 * `bfd_core' 2983 The BFD contains the result of an executable core dump. 2984 29852.9.1 File format functions 2986--------------------------- 2987 29882.9.1.1 `bfd_check_format' 2989.......................... 2990 2991*Synopsis* 2992 bfd_boolean bfd_check_format (bfd *abfd, bfd_format format); 2993 *Description* 2994Verify if the file attached to the BFD ABFD is compatible with the 2995format FORMAT (i.e., one of `bfd_object', `bfd_archive' or `bfd_core'). 2996 2997 If the BFD has been set to a specific target before the call, only 2998the named target and format combination is checked. If the target has 2999not been set, or has been set to `default', then all the known target 3000backends is interrogated to determine a match. If the default target 3001matches, it is used. If not, exactly one target must recognize the 3002file, or an error results. 3003 3004 The function returns `TRUE' on success, otherwise `FALSE' with one 3005of the following error codes: 3006 3007 * `bfd_error_invalid_operation' - if `format' is not one of 3008 `bfd_object', `bfd_archive' or `bfd_core'. 3009 3010 * `bfd_error_system_call' - if an error occured during a read - even 3011 some file mismatches can cause bfd_error_system_calls. 3012 3013 * `file_not_recognised' - none of the backends recognised the file 3014 format. 3015 3016 * `bfd_error_file_ambiguously_recognized' - more than one backend 3017 recognised the file format. 3018 30192.9.1.2 `bfd_check_format_matches' 3020.................................. 3021 3022*Synopsis* 3023 bfd_boolean bfd_check_format_matches 3024 (bfd *abfd, bfd_format format, char ***matching); 3025 *Description* 3026Like `bfd_check_format', except when it returns FALSE with `bfd_errno' 3027set to `bfd_error_file_ambiguously_recognized'. In that case, if 3028MATCHING is not NULL, it will be filled in with a NULL-terminated list 3029of the names of the formats that matched, allocated with `malloc'. 3030Then the user may choose a format and try again. 3031 3032 When done with the list that MATCHING points to, the caller should 3033free it. 3034 30352.9.1.3 `bfd_set_format' 3036........................ 3037 3038*Synopsis* 3039 bfd_boolean bfd_set_format (bfd *abfd, bfd_format format); 3040 *Description* 3041This function sets the file format of the BFD ABFD to the format 3042FORMAT. If the target set in the BFD does not support the format 3043requested, the format is invalid, or the BFD is not open for writing, 3044then an error occurs. 3045 30462.9.1.4 `bfd_format_string' 3047........................... 3048 3049*Synopsis* 3050 const char *bfd_format_string (bfd_format format); 3051 *Description* 3052Return a pointer to a const string `invalid', `object', `archive', 3053`core', or `unknown', depending upon the value of FORMAT. 3054 3055 3056File: bfd.info, Node: Relocations, Next: Core Files, Prev: Formats, Up: BFD front end 3057 30582.10 Relocations 3059================ 3060 3061BFD maintains relocations in much the same way it maintains symbols: 3062they are left alone until required, then read in en-masse and 3063translated into an internal form. A common routine 3064`bfd_perform_relocation' acts upon the canonical form to do the fixup. 3065 3066 Relocations are maintained on a per section basis, while symbols are 3067maintained on a per BFD basis. 3068 3069 All that a back end has to do to fit the BFD interface is to create 3070a `struct reloc_cache_entry' for each relocation in a particular 3071section, and fill in the right bits of the structures. 3072 3073* Menu: 3074 3075* typedef arelent:: 3076* howto manager:: 3077 3078 3079File: bfd.info, Node: typedef arelent, Next: howto manager, Prev: Relocations, Up: Relocations 3080 30812.10.1 typedef arelent 3082---------------------- 3083 3084This is the structure of a relocation entry: 3085 3086 3087 typedef enum bfd_reloc_status 3088 { 3089 /* No errors detected. */ 3090 bfd_reloc_ok, 3091 3092 /* The relocation was performed, but there was an overflow. */ 3093 bfd_reloc_overflow, 3094 3095 /* The address to relocate was not within the section supplied. */ 3096 bfd_reloc_outofrange, 3097 3098 /* Used by special functions. */ 3099 bfd_reloc_continue, 3100 3101 /* Unsupported relocation size requested. */ 3102 bfd_reloc_notsupported, 3103 3104 /* Unused. */ 3105 bfd_reloc_other, 3106 3107 /* The symbol to relocate against was undefined. */ 3108 bfd_reloc_undefined, 3109 3110 /* The relocation was performed, but may not be ok - presently 3111 generated only when linking i960 coff files with i960 b.out 3112 symbols. If this type is returned, the error_message argument 3113 to bfd_perform_relocation will be set. */ 3114 bfd_reloc_dangerous 3115 } 3116 bfd_reloc_status_type; 3117 3118 3119 typedef struct reloc_cache_entry 3120 { 3121 /* A pointer into the canonical table of pointers. */ 3122 struct bfd_symbol **sym_ptr_ptr; 3123 3124 /* offset in section. */ 3125 bfd_size_type address; 3126 3127 /* addend for relocation value. */ 3128 bfd_vma addend; 3129 3130 /* Pointer to how to perform the required relocation. */ 3131 reloc_howto_type *howto; 3132 3133 } 3134 arelent; 3135 *Description* 3136Here is a description of each of the fields within an `arelent': 3137 3138 * `sym_ptr_ptr' 3139 The symbol table pointer points to a pointer to the symbol 3140associated with the relocation request. It is the pointer into the 3141table returned by the back end's `canonicalize_symtab' action. *Note 3142Symbols::. The symbol is referenced through a pointer to a pointer so 3143that tools like the linker can fix up all the symbols of the same name 3144by modifying only one pointer. The relocation routine looks in the 3145symbol and uses the base of the section the symbol is attached to and 3146the value of the symbol as the initial relocation offset. If the symbol 3147pointer is zero, then the section provided is looked up. 3148 3149 * `address' 3150 The `address' field gives the offset in bytes from the base of the 3151section data which owns the relocation record to the first byte of 3152relocatable information. The actual data relocated will be relative to 3153this point; for example, a relocation type which modifies the bottom 3154two bytes of a four byte word would not touch the first byte pointed to 3155in a big endian world. 3156 3157 * `addend' 3158 The `addend' is a value provided by the back end to be added (!) to 3159the relocation offset. Its interpretation is dependent upon the howto. 3160For example, on the 68k the code: 3161 3162 char foo[]; 3163 main() 3164 { 3165 return foo[0x12345678]; 3166 } 3167 3168 Could be compiled into: 3169 3170 linkw fp,#-4 3171 moveb @#12345678,d0 3172 extbl d0 3173 unlk fp 3174 rts 3175 3176 This could create a reloc pointing to `foo', but leave the offset in 3177the data, something like: 3178 3179 RELOCATION RECORDS FOR [.text]: 3180 offset type value 3181 00000006 32 _foo 3182 3183 00000000 4e56 fffc ; linkw fp,#-4 3184 00000004 1039 1234 5678 ; moveb @#12345678,d0 3185 0000000a 49c0 ; extbl d0 3186 0000000c 4e5e ; unlk fp 3187 0000000e 4e75 ; rts 3188 3189 Using coff and an 88k, some instructions don't have enough space in 3190them to represent the full address range, and pointers have to be 3191loaded in two parts. So you'd get something like: 3192 3193 or.u r13,r0,hi16(_foo+0x12345678) 3194 ld.b r2,r13,lo16(_foo+0x12345678) 3195 jmp r1 3196 3197 This should create two relocs, both pointing to `_foo', and with 31980x12340000 in their addend field. The data would consist of: 3199 3200 RELOCATION RECORDS FOR [.text]: 3201 offset type value 3202 00000002 HVRT16 _foo+0x12340000 3203 00000006 LVRT16 _foo+0x12340000 3204 3205 00000000 5da05678 ; or.u r13,r0,0x5678 3206 00000004 1c4d5678 ; ld.b r2,r13,0x5678 3207 00000008 f400c001 ; jmp r1 3208 3209 The relocation routine digs out the value from the data, adds it to 3210the addend to get the original offset, and then adds the value of 3211`_foo'. Note that all 32 bits have to be kept around somewhere, to cope 3212with carry from bit 15 to bit 16. 3213 3214 One further example is the sparc and the a.out format. The sparc has 3215a similar problem to the 88k, in that some instructions don't have room 3216for an entire offset, but on the sparc the parts are created in odd 3217sized lumps. The designers of the a.out format chose to not use the 3218data within the section for storing part of the offset; all the offset 3219is kept within the reloc. Anything in the data should be ignored. 3220 3221 save %sp,-112,%sp 3222 sethi %hi(_foo+0x12345678),%g2 3223 ldsb [%g2+%lo(_foo+0x12345678)],%i0 3224 ret 3225 restore 3226 3227 Both relocs contain a pointer to `foo', and the offsets contain junk. 3228 3229 RELOCATION RECORDS FOR [.text]: 3230 offset type value 3231 00000004 HI22 _foo+0x12345678 3232 00000008 LO10 _foo+0x12345678 3233 3234 00000000 9de3bf90 ; save %sp,-112,%sp 3235 00000004 05000000 ; sethi %hi(_foo+0),%g2 3236 00000008 f048a000 ; ldsb [%g2+%lo(_foo+0)],%i0 3237 0000000c 81c7e008 ; ret 3238 00000010 81e80000 ; restore 3239 3240 * `howto' 3241 The `howto' field can be imagined as a relocation instruction. It is 3242a pointer to a structure which contains information on what to do with 3243all of the other information in the reloc record and data section. A 3244back end would normally have a relocation instruction set and turn 3245relocations into pointers to the correct structure on input - but it 3246would be possible to create each howto field on demand. 3247 32482.10.1.1 `enum complain_overflow' 3249................................. 3250 3251Indicates what sort of overflow checking should be done when performing 3252a relocation. 3253 3254 3255 enum complain_overflow 3256 { 3257 /* Do not complain on overflow. */ 3258 complain_overflow_dont, 3259 3260 /* Complain if the value overflows when considered as a signed 3261 number one bit larger than the field. ie. A bitfield of N bits 3262 is allowed to represent -2**n to 2**n-1. */ 3263 complain_overflow_bitfield, 3264 3265 /* Complain if the value overflows when considered as a signed 3266 number. */ 3267 complain_overflow_signed, 3268 3269 /* Complain if the value overflows when considered as an 3270 unsigned number. */ 3271 complain_overflow_unsigned 3272 }; 3273 32742.10.1.2 `reloc_howto_type' 3275........................... 3276 3277The `reloc_howto_type' is a structure which contains all the 3278information that libbfd needs to know to tie up a back end's data. 3279 3280 struct bfd_symbol; /* Forward declaration. */ 3281 3282 struct reloc_howto_struct 3283 { 3284 /* The type field has mainly a documentary use - the back end can 3285 do what it wants with it, though normally the back end's 3286 external idea of what a reloc number is stored 3287 in this field. For example, a PC relative word relocation 3288 in a coff environment has the type 023 - because that's 3289 what the outside world calls a R_PCRWORD reloc. */ 3290 unsigned int type; 3291 3292 /* The value the final relocation is shifted right by. This drops 3293 unwanted data from the relocation. */ 3294 unsigned int rightshift; 3295 3296 /* The size of the item to be relocated. This is *not* a 3297 power-of-two measure. To get the number of bytes operated 3298 on by a type of relocation, use bfd_get_reloc_size. */ 3299 int size; 3300 3301 /* The number of bits in the item to be relocated. This is used 3302 when doing overflow checking. */ 3303 unsigned int bitsize; 3304 3305 /* The relocation is relative to the field being relocated. */ 3306 bfd_boolean pc_relative; 3307 3308 /* The bit position of the reloc value in the destination. 3309 The relocated value is left shifted by this amount. */ 3310 unsigned int bitpos; 3311 3312 /* What type of overflow error should be checked for when 3313 relocating. */ 3314 enum complain_overflow complain_on_overflow; 3315 3316 /* If this field is non null, then the supplied function is 3317 called rather than the normal function. This allows really 3318 strange relocation methods to be accommodated (e.g., i960 callj 3319 instructions). */ 3320 bfd_reloc_status_type (*special_function) 3321 (bfd *, arelent *, struct bfd_symbol *, void *, asection *, 3322 bfd *, char **); 3323 3324 /* The textual name of the relocation type. */ 3325 char *name; 3326 3327 /* Some formats record a relocation addend in the section contents 3328 rather than with the relocation. For ELF formats this is the 3329 distinction between USE_REL and USE_RELA (though the code checks 3330 for USE_REL == 1/0). The value of this field is TRUE if the 3331 addend is recorded with the section contents; when performing a 3332 partial link (ld -r) the section contents (the data) will be 3333 modified. The value of this field is FALSE if addends are 3334 recorded with the relocation (in arelent.addend); when performing 3335 a partial link the relocation will be modified. 3336 All relocations for all ELF USE_RELA targets should set this field 3337 to FALSE (values of TRUE should be looked on with suspicion). 3338 However, the converse is not true: not all relocations of all ELF 3339 USE_REL targets set this field to TRUE. Why this is so is peculiar 3340 to each particular target. For relocs that aren't used in partial 3341 links (e.g. GOT stuff) it doesn't matter what this is set to. */ 3342 bfd_boolean partial_inplace; 3343 3344 /* src_mask selects the part of the instruction (or data) to be used 3345 in the relocation sum. If the target relocations don't have an 3346 addend in the reloc, eg. ELF USE_REL, src_mask will normally equal 3347 dst_mask to extract the addend from the section contents. If 3348 relocations do have an addend in the reloc, eg. ELF USE_RELA, this 3349 field should be zero. Non-zero values for ELF USE_RELA targets are 3350 bogus as in those cases the value in the dst_mask part of the 3351 section contents should be treated as garbage. */ 3352 bfd_vma src_mask; 3353 3354 /* dst_mask selects which parts of the instruction (or data) are 3355 replaced with a relocated value. */ 3356 bfd_vma dst_mask; 3357 3358 /* When some formats create PC relative instructions, they leave 3359 the value of the pc of the place being relocated in the offset 3360 slot of the instruction, so that a PC relative relocation can 3361 be made just by adding in an ordinary offset (e.g., sun3 a.out). 3362 Some formats leave the displacement part of an instruction 3363 empty (e.g., m88k bcs); this flag signals the fact. */ 3364 bfd_boolean pcrel_offset; 3365 }; 3366 33672.10.1.3 `The HOWTO Macro' 3368.......................... 3369 3370*Description* 3371The HOWTO define is horrible and will go away. 3372 #define HOWTO(C, R, S, B, P, BI, O, SF, NAME, INPLACE, MASKSRC, MASKDST, PC) \ 3373 { (unsigned) C, R, S, B, P, BI, O, SF, NAME, INPLACE, MASKSRC, MASKDST, PC } 3374 3375 *Description* 3376And will be replaced with the totally magic way. But for the moment, we 3377are compatible, so do it this way. 3378 #define NEWHOWTO(FUNCTION, NAME, SIZE, REL, IN) \ 3379 HOWTO (0, 0, SIZE, 0, REL, 0, complain_overflow_dont, FUNCTION, \ 3380 NAME, FALSE, 0, 0, IN) 3381 3382 *Description* 3383This is used to fill in an empty howto entry in an array. 3384 #define EMPTY_HOWTO(C) \ 3385 HOWTO ((C), 0, 0, 0, FALSE, 0, complain_overflow_dont, NULL, \ 3386 NULL, FALSE, 0, 0, FALSE) 3387 3388 *Description* 3389Helper routine to turn a symbol into a relocation value. 3390 #define HOWTO_PREPARE(relocation, symbol) \ 3391 { \ 3392 if (symbol != NULL) \ 3393 { \ 3394 if (bfd_is_com_section (symbol->section)) \ 3395 { \ 3396 relocation = 0; \ 3397 } \ 3398 else \ 3399 { \ 3400 relocation = symbol->value; \ 3401 } \ 3402 } \ 3403 } 3404 34052.10.1.4 `bfd_get_reloc_size' 3406............................. 3407 3408*Synopsis* 3409 unsigned int bfd_get_reloc_size (reloc_howto_type *); 3410 *Description* 3411For a reloc_howto_type that operates on a fixed number of bytes, this 3412returns the number of bytes operated on. 3413 34142.10.1.5 `arelent_chain' 3415........................ 3416 3417*Description* 3418How relocs are tied together in an `asection': 3419 typedef struct relent_chain 3420 { 3421 arelent relent; 3422 struct relent_chain *next; 3423 } 3424 arelent_chain; 3425 34262.10.1.6 `bfd_check_overflow' 3427............................. 3428 3429*Synopsis* 3430 bfd_reloc_status_type bfd_check_overflow 3431 (enum complain_overflow how, 3432 unsigned int bitsize, 3433 unsigned int rightshift, 3434 unsigned int addrsize, 3435 bfd_vma relocation); 3436 *Description* 3437Perform overflow checking on RELOCATION which has BITSIZE significant 3438bits and will be shifted right by RIGHTSHIFT bits, on a machine with 3439addresses containing ADDRSIZE significant bits. The result is either of 3440`bfd_reloc_ok' or `bfd_reloc_overflow'. 3441 34422.10.1.7 `bfd_perform_relocation' 3443................................. 3444 3445*Synopsis* 3446 bfd_reloc_status_type bfd_perform_relocation 3447 (bfd *abfd, 3448 arelent *reloc_entry, 3449 void *data, 3450 asection *input_section, 3451 bfd *output_bfd, 3452 char **error_message); 3453 *Description* 3454If OUTPUT_BFD is supplied to this function, the generated image will be 3455relocatable; the relocations are copied to the output file after they 3456have been changed to reflect the new state of the world. There are two 3457ways of reflecting the results of partial linkage in an output file: by 3458modifying the output data in place, and by modifying the relocation 3459record. Some native formats (e.g., basic a.out and basic coff) have no 3460way of specifying an addend in the relocation type, so the addend has 3461to go in the output data. This is no big deal since in these formats 3462the output data slot will always be big enough for the addend. Complex 3463reloc types with addends were invented to solve just this problem. The 3464ERROR_MESSAGE argument is set to an error message if this return 3465`bfd_reloc_dangerous'. 3466 34672.10.1.8 `bfd_install_relocation' 3468................................. 3469 3470*Synopsis* 3471 bfd_reloc_status_type bfd_install_relocation 3472 (bfd *abfd, 3473 arelent *reloc_entry, 3474 void *data, bfd_vma data_start, 3475 asection *input_section, 3476 char **error_message); 3477 *Description* 3478This looks remarkably like `bfd_perform_relocation', except it does not 3479expect that the section contents have been filled in. I.e., it's 3480suitable for use when creating, rather than applying a relocation. 3481 3482 For now, this function should be considered reserved for the 3483assembler. 3484 3485 3486File: bfd.info, Node: howto manager, Prev: typedef arelent, Up: Relocations 3487 34882.10.2 The howto manager 3489------------------------ 3490 3491When an application wants to create a relocation, but doesn't know what 3492the target machine might call it, it can find out by using this bit of 3493code. 3494 34952.10.2.1 `bfd_reloc_code_type' 3496.............................. 3497 3498*Description* 3499The insides of a reloc code. The idea is that, eventually, there will 3500be one enumerator for every type of relocation we ever do. Pass one of 3501these values to `bfd_reloc_type_lookup', and it'll return a howto 3502pointer. 3503 3504 This does mean that the application must determine the correct 3505enumerator value; you can't get a howto pointer from a random set of 3506attributes. 3507 3508 Here are the possible values for `enum bfd_reloc_code_real': 3509 3510 -- : BFD_RELOC_64 3511 -- : BFD_RELOC_32 3512 -- : BFD_RELOC_26 3513 -- : BFD_RELOC_24 3514 -- : BFD_RELOC_16 3515 -- : BFD_RELOC_14 3516 -- : BFD_RELOC_8 3517 Basic absolute relocations of N bits. 3518 3519 -- : BFD_RELOC_64_PCREL 3520 -- : BFD_RELOC_32_PCREL 3521 -- : BFD_RELOC_24_PCREL 3522 -- : BFD_RELOC_16_PCREL 3523 -- : BFD_RELOC_12_PCREL 3524 -- : BFD_RELOC_8_PCREL 3525 PC-relative relocations. Sometimes these are relative to the 3526 address of the relocation itself; sometimes they are relative to 3527 the start of the section containing the relocation. It depends on 3528 the specific target. 3529 3530 The 24-bit relocation is used in some Intel 960 configurations. 3531 3532 -- : BFD_RELOC_32_SECREL 3533 Section relative relocations. Some targets need this for DWARF2. 3534 3535 -- : BFD_RELOC_32_GOT_PCREL 3536 -- : BFD_RELOC_16_GOT_PCREL 3537 -- : BFD_RELOC_8_GOT_PCREL 3538 -- : BFD_RELOC_32_GOTOFF 3539 -- : BFD_RELOC_16_GOTOFF 3540 -- : BFD_RELOC_LO16_GOTOFF 3541 -- : BFD_RELOC_HI16_GOTOFF 3542 -- : BFD_RELOC_HI16_S_GOTOFF 3543 -- : BFD_RELOC_8_GOTOFF 3544 -- : BFD_RELOC_64_PLT_PCREL 3545 -- : BFD_RELOC_32_PLT_PCREL 3546 -- : BFD_RELOC_24_PLT_PCREL 3547 -- : BFD_RELOC_16_PLT_PCREL 3548 -- : BFD_RELOC_8_PLT_PCREL 3549 -- : BFD_RELOC_64_PLTOFF 3550 -- : BFD_RELOC_32_PLTOFF 3551 -- : BFD_RELOC_16_PLTOFF 3552 -- : BFD_RELOC_LO16_PLTOFF 3553 -- : BFD_RELOC_HI16_PLTOFF 3554 -- : BFD_RELOC_HI16_S_PLTOFF 3555 -- : BFD_RELOC_8_PLTOFF 3556 For ELF. 3557 3558 -- : BFD_RELOC_SIZE32 3559 -- : BFD_RELOC_SIZE64 3560 Size relocations. 3561 3562 -- : BFD_RELOC_68K_GLOB_DAT 3563 -- : BFD_RELOC_68K_JMP_SLOT 3564 -- : BFD_RELOC_68K_RELATIVE 3565 -- : BFD_RELOC_68K_TLS_GD32 3566 -- : BFD_RELOC_68K_TLS_GD16 3567 -- : BFD_RELOC_68K_TLS_GD8 3568 -- : BFD_RELOC_68K_TLS_LDM32 3569 -- : BFD_RELOC_68K_TLS_LDM16 3570 -- : BFD_RELOC_68K_TLS_LDM8 3571 -- : BFD_RELOC_68K_TLS_LDO32 3572 -- : BFD_RELOC_68K_TLS_LDO16 3573 -- : BFD_RELOC_68K_TLS_LDO8 3574 -- : BFD_RELOC_68K_TLS_IE32 3575 -- : BFD_RELOC_68K_TLS_IE16 3576 -- : BFD_RELOC_68K_TLS_IE8 3577 -- : BFD_RELOC_68K_TLS_LE32 3578 -- : BFD_RELOC_68K_TLS_LE16 3579 -- : BFD_RELOC_68K_TLS_LE8 3580 Relocations used by 68K ELF. 3581 3582 -- : BFD_RELOC_32_BASEREL 3583 -- : BFD_RELOC_16_BASEREL 3584 -- : BFD_RELOC_LO16_BASEREL 3585 -- : BFD_RELOC_HI16_BASEREL 3586 -- : BFD_RELOC_HI16_S_BASEREL 3587 -- : BFD_RELOC_8_BASEREL 3588 -- : BFD_RELOC_RVA 3589 Linkage-table relative. 3590 3591 -- : BFD_RELOC_8_FFnn 3592 Absolute 8-bit relocation, but used to form an address like 0xFFnn. 3593 3594 -- : BFD_RELOC_32_PCREL_S2 3595 -- : BFD_RELOC_16_PCREL_S2 3596 -- : BFD_RELOC_23_PCREL_S2 3597 These PC-relative relocations are stored as word displacements - 3598 i.e., byte displacements shifted right two bits. The 30-bit word 3599 displacement (<<32_PCREL_S2>> - 32 bits, shifted 2) is used on the 3600 SPARC. (SPARC tools generally refer to this as <<WDISP30>>.) The 3601 signed 16-bit displacement is used on the MIPS, and the 23-bit 3602 displacement is used on the Alpha. 3603 3604 -- : BFD_RELOC_HI22 3605 -- : BFD_RELOC_LO10 3606 High 22 bits and low 10 bits of 32-bit value, placed into lower 3607 bits of the target word. These are used on the SPARC. 3608 3609 -- : BFD_RELOC_GPREL16 3610 -- : BFD_RELOC_GPREL32 3611 For systems that allocate a Global Pointer register, these are 3612 displacements off that register. These relocation types are 3613 handled specially, because the value the register will have is 3614 decided relatively late. 3615 3616 -- : BFD_RELOC_I960_CALLJ 3617 Reloc types used for i960/b.out. 3618 3619 -- : BFD_RELOC_NONE 3620 -- : BFD_RELOC_SPARC_WDISP22 3621 -- : BFD_RELOC_SPARC22 3622 -- : BFD_RELOC_SPARC13 3623 -- : BFD_RELOC_SPARC_GOT10 3624 -- : BFD_RELOC_SPARC_GOT13 3625 -- : BFD_RELOC_SPARC_GOT22 3626 -- : BFD_RELOC_SPARC_PC10 3627 -- : BFD_RELOC_SPARC_PC22 3628 -- : BFD_RELOC_SPARC_WPLT30 3629 -- : BFD_RELOC_SPARC_COPY 3630 -- : BFD_RELOC_SPARC_GLOB_DAT 3631 -- : BFD_RELOC_SPARC_JMP_SLOT 3632 -- : BFD_RELOC_SPARC_RELATIVE 3633 -- : BFD_RELOC_SPARC_UA16 3634 -- : BFD_RELOC_SPARC_UA32 3635 -- : BFD_RELOC_SPARC_UA64 3636 -- : BFD_RELOC_SPARC_GOTDATA_HIX22 3637 -- : BFD_RELOC_SPARC_GOTDATA_LOX10 3638 -- : BFD_RELOC_SPARC_GOTDATA_OP_HIX22 3639 -- : BFD_RELOC_SPARC_GOTDATA_OP_LOX10 3640 -- : BFD_RELOC_SPARC_GOTDATA_OP 3641 -- : BFD_RELOC_SPARC_JMP_IREL 3642 -- : BFD_RELOC_SPARC_IRELATIVE 3643 SPARC ELF relocations. There is probably some overlap with other 3644 relocation types already defined. 3645 3646 -- : BFD_RELOC_SPARC_BASE13 3647 -- : BFD_RELOC_SPARC_BASE22 3648 I think these are specific to SPARC a.out (e.g., Sun 4). 3649 3650 -- : BFD_RELOC_SPARC_64 3651 -- : BFD_RELOC_SPARC_10 3652 -- : BFD_RELOC_SPARC_11 3653 -- : BFD_RELOC_SPARC_OLO10 3654 -- : BFD_RELOC_SPARC_HH22 3655 -- : BFD_RELOC_SPARC_HM10 3656 -- : BFD_RELOC_SPARC_LM22 3657 -- : BFD_RELOC_SPARC_PC_HH22 3658 -- : BFD_RELOC_SPARC_PC_HM10 3659 -- : BFD_RELOC_SPARC_PC_LM22 3660 -- : BFD_RELOC_SPARC_WDISP16 3661 -- : BFD_RELOC_SPARC_WDISP19 3662 -- : BFD_RELOC_SPARC_7 3663 -- : BFD_RELOC_SPARC_6 3664 -- : BFD_RELOC_SPARC_5 3665 -- : BFD_RELOC_SPARC_DISP64 3666 -- : BFD_RELOC_SPARC_PLT32 3667 -- : BFD_RELOC_SPARC_PLT64 3668 -- : BFD_RELOC_SPARC_HIX22 3669 -- : BFD_RELOC_SPARC_LOX10 3670 -- : BFD_RELOC_SPARC_H44 3671 -- : BFD_RELOC_SPARC_M44 3672 -- : BFD_RELOC_SPARC_L44 3673 -- : BFD_RELOC_SPARC_REGISTER 3674 -- : BFD_RELOC_SPARC_H34 3675 -- : BFD_RELOC_SPARC_SIZE32 3676 -- : BFD_RELOC_SPARC_SIZE64 3677 -- : BFD_RELOC_SPARC_WDISP10 3678 SPARC64 relocations 3679 3680 -- : BFD_RELOC_SPARC_REV32 3681 SPARC little endian relocation 3682 3683 -- : BFD_RELOC_SPARC_TLS_GD_HI22 3684 -- : BFD_RELOC_SPARC_TLS_GD_LO10 3685 -- : BFD_RELOC_SPARC_TLS_GD_ADD 3686 -- : BFD_RELOC_SPARC_TLS_GD_CALL 3687 -- : BFD_RELOC_SPARC_TLS_LDM_HI22 3688 -- : BFD_RELOC_SPARC_TLS_LDM_LO10 3689 -- : BFD_RELOC_SPARC_TLS_LDM_ADD 3690 -- : BFD_RELOC_SPARC_TLS_LDM_CALL 3691 -- : BFD_RELOC_SPARC_TLS_LDO_HIX22 3692 -- : BFD_RELOC_SPARC_TLS_LDO_LOX10 3693 -- : BFD_RELOC_SPARC_TLS_LDO_ADD 3694 -- : BFD_RELOC_SPARC_TLS_IE_HI22 3695 -- : BFD_RELOC_SPARC_TLS_IE_LO10 3696 -- : BFD_RELOC_SPARC_TLS_IE_LD 3697 -- : BFD_RELOC_SPARC_TLS_IE_LDX 3698 -- : BFD_RELOC_SPARC_TLS_IE_ADD 3699 -- : BFD_RELOC_SPARC_TLS_LE_HIX22 3700 -- : BFD_RELOC_SPARC_TLS_LE_LOX10 3701 -- : BFD_RELOC_SPARC_TLS_DTPMOD32 3702 -- : BFD_RELOC_SPARC_TLS_DTPMOD64 3703 -- : BFD_RELOC_SPARC_TLS_DTPOFF32 3704 -- : BFD_RELOC_SPARC_TLS_DTPOFF64 3705 -- : BFD_RELOC_SPARC_TLS_TPOFF32 3706 -- : BFD_RELOC_SPARC_TLS_TPOFF64 3707 SPARC TLS relocations 3708 3709 -- : BFD_RELOC_SPU_IMM7 3710 -- : BFD_RELOC_SPU_IMM8 3711 -- : BFD_RELOC_SPU_IMM10 3712 -- : BFD_RELOC_SPU_IMM10W 3713 -- : BFD_RELOC_SPU_IMM16 3714 -- : BFD_RELOC_SPU_IMM16W 3715 -- : BFD_RELOC_SPU_IMM18 3716 -- : BFD_RELOC_SPU_PCREL9a 3717 -- : BFD_RELOC_SPU_PCREL9b 3718 -- : BFD_RELOC_SPU_PCREL16 3719 -- : BFD_RELOC_SPU_LO16 3720 -- : BFD_RELOC_SPU_HI16 3721 -- : BFD_RELOC_SPU_PPU32 3722 -- : BFD_RELOC_SPU_PPU64 3723 -- : BFD_RELOC_SPU_ADD_PIC 3724 SPU Relocations. 3725 3726 -- : BFD_RELOC_ALPHA_GPDISP_HI16 3727 Alpha ECOFF and ELF relocations. Some of these treat the symbol or 3728 "addend" in some special way. For GPDISP_HI16 ("gpdisp") 3729 relocations, the symbol is ignored when writing; when reading, it 3730 will be the absolute section symbol. The addend is the 3731 displacement in bytes of the "lda" instruction from the "ldah" 3732 instruction (which is at the address of this reloc). 3733 3734 -- : BFD_RELOC_ALPHA_GPDISP_LO16 3735 For GPDISP_LO16 ("ignore") relocations, the symbol is handled as 3736 with GPDISP_HI16 relocs. The addend is ignored when writing the 3737 relocations out, and is filled in with the file's GP value on 3738 reading, for convenience. 3739 3740 -- : BFD_RELOC_ALPHA_GPDISP 3741 The ELF GPDISP relocation is exactly the same as the GPDISP_HI16 3742 relocation except that there is no accompanying GPDISP_LO16 3743 relocation. 3744 3745 -- : BFD_RELOC_ALPHA_LITERAL 3746 -- : BFD_RELOC_ALPHA_ELF_LITERAL 3747 -- : BFD_RELOC_ALPHA_LITUSE 3748 The Alpha LITERAL/LITUSE relocs are produced by a symbol reference; 3749 the assembler turns it into a LDQ instruction to load the address 3750 of the symbol, and then fills in a register in the real 3751 instruction. 3752 3753 The LITERAL reloc, at the LDQ instruction, refers to the .lita 3754 section symbol. The addend is ignored when writing, but is filled 3755 in with the file's GP value on reading, for convenience, as with 3756 the GPDISP_LO16 reloc. 3757 3758 The ELF_LITERAL reloc is somewhere between 16_GOTOFF and 3759 GPDISP_LO16. It should refer to the symbol to be referenced, as 3760 with 16_GOTOFF, but it generates output not based on the position 3761 within the .got section, but relative to the GP value chosen for 3762 the file during the final link stage. 3763 3764 The LITUSE reloc, on the instruction using the loaded address, 3765 gives information to the linker that it might be able to use to 3766 optimize away some literal section references. The symbol is 3767 ignored (read as the absolute section symbol), and the "addend" 3768 indicates the type of instruction using the register: 1 - "memory" 3769 fmt insn 2 - byte-manipulation (byte offset reg) 3 - jsr (target 3770 of branch) 3771 3772 -- : BFD_RELOC_ALPHA_HINT 3773 The HINT relocation indicates a value that should be filled into 3774 the "hint" field of a jmp/jsr/ret instruction, for possible branch- 3775 prediction logic which may be provided on some processors. 3776 3777 -- : BFD_RELOC_ALPHA_LINKAGE 3778 The LINKAGE relocation outputs a linkage pair in the object file, 3779 which is filled by the linker. 3780 3781 -- : BFD_RELOC_ALPHA_CODEADDR 3782 The CODEADDR relocation outputs a STO_CA in the object file, which 3783 is filled by the linker. 3784 3785 -- : BFD_RELOC_ALPHA_GPREL_HI16 3786 -- : BFD_RELOC_ALPHA_GPREL_LO16 3787 The GPREL_HI/LO relocations together form a 32-bit offset from the 3788 GP register. 3789 3790 -- : BFD_RELOC_ALPHA_BRSGP 3791 Like BFD_RELOC_23_PCREL_S2, except that the source and target must 3792 share a common GP, and the target address is adjusted for 3793 STO_ALPHA_STD_GPLOAD. 3794 3795 -- : BFD_RELOC_ALPHA_NOP 3796 The NOP relocation outputs a NOP if the longword displacement 3797 between two procedure entry points is < 2^21. 3798 3799 -- : BFD_RELOC_ALPHA_BSR 3800 The BSR relocation outputs a BSR if the longword displacement 3801 between two procedure entry points is < 2^21. 3802 3803 -- : BFD_RELOC_ALPHA_LDA 3804 The LDA relocation outputs a LDA if the longword displacement 3805 between two procedure entry points is < 2^16. 3806 3807 -- : BFD_RELOC_ALPHA_BOH 3808 The BOH relocation outputs a BSR if the longword displacement 3809 between two procedure entry points is < 2^21, or else a hint. 3810 3811 -- : BFD_RELOC_ALPHA_TLSGD 3812 -- : BFD_RELOC_ALPHA_TLSLDM 3813 -- : BFD_RELOC_ALPHA_DTPMOD64 3814 -- : BFD_RELOC_ALPHA_GOTDTPREL16 3815 -- : BFD_RELOC_ALPHA_DTPREL64 3816 -- : BFD_RELOC_ALPHA_DTPREL_HI16 3817 -- : BFD_RELOC_ALPHA_DTPREL_LO16 3818 -- : BFD_RELOC_ALPHA_DTPREL16 3819 -- : BFD_RELOC_ALPHA_GOTTPREL16 3820 -- : BFD_RELOC_ALPHA_TPREL64 3821 -- : BFD_RELOC_ALPHA_TPREL_HI16 3822 -- : BFD_RELOC_ALPHA_TPREL_LO16 3823 -- : BFD_RELOC_ALPHA_TPREL16 3824 Alpha thread-local storage relocations. 3825 3826 -- : BFD_RELOC_MIPS_JMP 3827 -- : BFD_RELOC_MICROMIPS_JMP 3828 The MIPS jump instruction. 3829 3830 -- : BFD_RELOC_MIPS16_JMP 3831 The MIPS16 jump instruction. 3832 3833 -- : BFD_RELOC_MIPS16_GPREL 3834 MIPS16 GP relative reloc. 3835 3836 -- : BFD_RELOC_HI16 3837 High 16 bits of 32-bit value; simple reloc. 3838 3839 -- : BFD_RELOC_HI16_S 3840 High 16 bits of 32-bit value but the low 16 bits will be sign 3841 extended and added to form the final result. If the low 16 bits 3842 form a negative number, we need to add one to the high value to 3843 compensate for the borrow when the low bits are added. 3844 3845 -- : BFD_RELOC_LO16 3846 Low 16 bits. 3847 3848 -- : BFD_RELOC_HI16_PCREL 3849 High 16 bits of 32-bit pc-relative value 3850 3851 -- : BFD_RELOC_HI16_S_PCREL 3852 High 16 bits of 32-bit pc-relative value, adjusted 3853 3854 -- : BFD_RELOC_LO16_PCREL 3855 Low 16 bits of pc-relative value 3856 3857 -- : BFD_RELOC_MIPS16_GOT16 3858 -- : BFD_RELOC_MIPS16_CALL16 3859 Equivalent of BFD_RELOC_MIPS_*, but with the MIPS16 layout of 3860 16-bit immediate fields 3861 3862 -- : BFD_RELOC_MIPS16_HI16 3863 MIPS16 high 16 bits of 32-bit value. 3864 3865 -- : BFD_RELOC_MIPS16_HI16_S 3866 MIPS16 high 16 bits of 32-bit value but the low 16 bits will be 3867 sign extended and added to form the final result. If the low 16 3868 bits form a negative number, we need to add one to the high value 3869 to compensate for the borrow when the low bits are added. 3870 3871 -- : BFD_RELOC_MIPS16_LO16 3872 MIPS16 low 16 bits. 3873 3874 -- : BFD_RELOC_MIPS16_TLS_GD 3875 -- : BFD_RELOC_MIPS16_TLS_LDM 3876 -- : BFD_RELOC_MIPS16_TLS_DTPREL_HI16 3877 -- : BFD_RELOC_MIPS16_TLS_DTPREL_LO16 3878 -- : BFD_RELOC_MIPS16_TLS_GOTTPREL 3879 -- : BFD_RELOC_MIPS16_TLS_TPREL_HI16 3880 -- : BFD_RELOC_MIPS16_TLS_TPREL_LO16 3881 MIPS16 TLS relocations 3882 3883 -- : BFD_RELOC_MIPS_LITERAL 3884 -- : BFD_RELOC_MICROMIPS_LITERAL 3885 Relocation against a MIPS literal section. 3886 3887 -- : BFD_RELOC_MICROMIPS_7_PCREL_S1 3888 -- : BFD_RELOC_MICROMIPS_10_PCREL_S1 3889 -- : BFD_RELOC_MICROMIPS_16_PCREL_S1 3890 microMIPS PC-relative relocations. 3891 3892 -- : BFD_RELOC_MIPS16_16_PCREL_S1 3893 MIPS16 PC-relative relocation. 3894 3895 -- : BFD_RELOC_MIPS_21_PCREL_S2 3896 -- : BFD_RELOC_MIPS_26_PCREL_S2 3897 -- : BFD_RELOC_MIPS_18_PCREL_S3 3898 -- : BFD_RELOC_MIPS_19_PCREL_S2 3899 MIPS PC-relative relocations. 3900 3901 -- : BFD_RELOC_MICROMIPS_GPREL16 3902 -- : BFD_RELOC_MICROMIPS_HI16 3903 -- : BFD_RELOC_MICROMIPS_HI16_S 3904 -- : BFD_RELOC_MICROMIPS_LO16 3905 microMIPS versions of generic BFD relocs. 3906 3907 -- : BFD_RELOC_MIPS_GOT16 3908 -- : BFD_RELOC_MICROMIPS_GOT16 3909 -- : BFD_RELOC_MIPS_CALL16 3910 -- : BFD_RELOC_MICROMIPS_CALL16 3911 -- : BFD_RELOC_MIPS_GOT_HI16 3912 -- : BFD_RELOC_MICROMIPS_GOT_HI16 3913 -- : BFD_RELOC_MIPS_GOT_LO16 3914 -- : BFD_RELOC_MICROMIPS_GOT_LO16 3915 -- : BFD_RELOC_MIPS_CALL_HI16 3916 -- : BFD_RELOC_MICROMIPS_CALL_HI16 3917 -- : BFD_RELOC_MIPS_CALL_LO16 3918 -- : BFD_RELOC_MICROMIPS_CALL_LO16 3919 -- : BFD_RELOC_MIPS_SUB 3920 -- : BFD_RELOC_MICROMIPS_SUB 3921 -- : BFD_RELOC_MIPS_GOT_PAGE 3922 -- : BFD_RELOC_MICROMIPS_GOT_PAGE 3923 -- : BFD_RELOC_MIPS_GOT_OFST 3924 -- : BFD_RELOC_MICROMIPS_GOT_OFST 3925 -- : BFD_RELOC_MIPS_GOT_DISP 3926 -- : BFD_RELOC_MICROMIPS_GOT_DISP 3927 -- : BFD_RELOC_MIPS_SHIFT5 3928 -- : BFD_RELOC_MIPS_SHIFT6 3929 -- : BFD_RELOC_MIPS_INSERT_A 3930 -- : BFD_RELOC_MIPS_INSERT_B 3931 -- : BFD_RELOC_MIPS_DELETE 3932 -- : BFD_RELOC_MIPS_HIGHEST 3933 -- : BFD_RELOC_MICROMIPS_HIGHEST 3934 -- : BFD_RELOC_MIPS_HIGHER 3935 -- : BFD_RELOC_MICROMIPS_HIGHER 3936 -- : BFD_RELOC_MIPS_SCN_DISP 3937 -- : BFD_RELOC_MICROMIPS_SCN_DISP 3938 -- : BFD_RELOC_MIPS_REL16 3939 -- : BFD_RELOC_MIPS_RELGOT 3940 -- : BFD_RELOC_MIPS_JALR 3941 -- : BFD_RELOC_MICROMIPS_JALR 3942 -- : BFD_RELOC_MIPS_TLS_DTPMOD32 3943 -- : BFD_RELOC_MIPS_TLS_DTPREL32 3944 -- : BFD_RELOC_MIPS_TLS_DTPMOD64 3945 -- : BFD_RELOC_MIPS_TLS_DTPREL64 3946 -- : BFD_RELOC_MIPS_TLS_GD 3947 -- : BFD_RELOC_MICROMIPS_TLS_GD 3948 -- : BFD_RELOC_MIPS_TLS_LDM 3949 -- : BFD_RELOC_MICROMIPS_TLS_LDM 3950 -- : BFD_RELOC_MIPS_TLS_DTPREL_HI16 3951 -- : BFD_RELOC_MICROMIPS_TLS_DTPREL_HI16 3952 -- : BFD_RELOC_MIPS_TLS_DTPREL_LO16 3953 -- : BFD_RELOC_MICROMIPS_TLS_DTPREL_LO16 3954 -- : BFD_RELOC_MIPS_TLS_GOTTPREL 3955 -- : BFD_RELOC_MICROMIPS_TLS_GOTTPREL 3956 -- : BFD_RELOC_MIPS_TLS_TPREL32 3957 -- : BFD_RELOC_MIPS_TLS_TPREL64 3958 -- : BFD_RELOC_MIPS_TLS_TPREL_HI16 3959 -- : BFD_RELOC_MICROMIPS_TLS_TPREL_HI16 3960 -- : BFD_RELOC_MIPS_TLS_TPREL_LO16 3961 -- : BFD_RELOC_MICROMIPS_TLS_TPREL_LO16 3962 -- : BFD_RELOC_MIPS_EH 3963 MIPS ELF relocations. 3964 3965 -- : BFD_RELOC_MIPS_COPY 3966 -- : BFD_RELOC_MIPS_JUMP_SLOT 3967 MIPS ELF relocations (VxWorks and PLT extensions). 3968 3969 -- : BFD_RELOC_MOXIE_10_PCREL 3970 Moxie ELF relocations. 3971 3972 -- : BFD_RELOC_FT32_10 3973 -- : BFD_RELOC_FT32_20 3974 -- : BFD_RELOC_FT32_17 3975 -- : BFD_RELOC_FT32_18 3976 FT32 ELF relocations. 3977 3978 -- : BFD_RELOC_FRV_LABEL16 3979 -- : BFD_RELOC_FRV_LABEL24 3980 -- : BFD_RELOC_FRV_LO16 3981 -- : BFD_RELOC_FRV_HI16 3982 -- : BFD_RELOC_FRV_GPREL12 3983 -- : BFD_RELOC_FRV_GPRELU12 3984 -- : BFD_RELOC_FRV_GPREL32 3985 -- : BFD_RELOC_FRV_GPRELHI 3986 -- : BFD_RELOC_FRV_GPRELLO 3987 -- : BFD_RELOC_FRV_GOT12 3988 -- : BFD_RELOC_FRV_GOTHI 3989 -- : BFD_RELOC_FRV_GOTLO 3990 -- : BFD_RELOC_FRV_FUNCDESC 3991 -- : BFD_RELOC_FRV_FUNCDESC_GOT12 3992 -- : BFD_RELOC_FRV_FUNCDESC_GOTHI 3993 -- : BFD_RELOC_FRV_FUNCDESC_GOTLO 3994 -- : BFD_RELOC_FRV_FUNCDESC_VALUE 3995 -- : BFD_RELOC_FRV_FUNCDESC_GOTOFF12 3996 -- : BFD_RELOC_FRV_FUNCDESC_GOTOFFHI 3997 -- : BFD_RELOC_FRV_FUNCDESC_GOTOFFLO 3998 -- : BFD_RELOC_FRV_GOTOFF12 3999 -- : BFD_RELOC_FRV_GOTOFFHI 4000 -- : BFD_RELOC_FRV_GOTOFFLO 4001 -- : BFD_RELOC_FRV_GETTLSOFF 4002 -- : BFD_RELOC_FRV_TLSDESC_VALUE 4003 -- : BFD_RELOC_FRV_GOTTLSDESC12 4004 -- : BFD_RELOC_FRV_GOTTLSDESCHI 4005 -- : BFD_RELOC_FRV_GOTTLSDESCLO 4006 -- : BFD_RELOC_FRV_TLSMOFF12 4007 -- : BFD_RELOC_FRV_TLSMOFFHI 4008 -- : BFD_RELOC_FRV_TLSMOFFLO 4009 -- : BFD_RELOC_FRV_GOTTLSOFF12 4010 -- : BFD_RELOC_FRV_GOTTLSOFFHI 4011 -- : BFD_RELOC_FRV_GOTTLSOFFLO 4012 -- : BFD_RELOC_FRV_TLSOFF 4013 -- : BFD_RELOC_FRV_TLSDESC_RELAX 4014 -- : BFD_RELOC_FRV_GETTLSOFF_RELAX 4015 -- : BFD_RELOC_FRV_TLSOFF_RELAX 4016 -- : BFD_RELOC_FRV_TLSMOFF 4017 Fujitsu Frv Relocations. 4018 4019 -- : BFD_RELOC_MN10300_GOTOFF24 4020 This is a 24bit GOT-relative reloc for the mn10300. 4021 4022 -- : BFD_RELOC_MN10300_GOT32 4023 This is a 32bit GOT-relative reloc for the mn10300, offset by two 4024 bytes in the instruction. 4025 4026 -- : BFD_RELOC_MN10300_GOT24 4027 This is a 24bit GOT-relative reloc for the mn10300, offset by two 4028 bytes in the instruction. 4029 4030 -- : BFD_RELOC_MN10300_GOT16 4031 This is a 16bit GOT-relative reloc for the mn10300, offset by two 4032 bytes in the instruction. 4033 4034 -- : BFD_RELOC_MN10300_COPY 4035 Copy symbol at runtime. 4036 4037 -- : BFD_RELOC_MN10300_GLOB_DAT 4038 Create GOT entry. 4039 4040 -- : BFD_RELOC_MN10300_JMP_SLOT 4041 Create PLT entry. 4042 4043 -- : BFD_RELOC_MN10300_RELATIVE 4044 Adjust by program base. 4045 4046 -- : BFD_RELOC_MN10300_SYM_DIFF 4047 Together with another reloc targeted at the same location, allows 4048 for a value that is the difference of two symbols in the same 4049 section. 4050 4051 -- : BFD_RELOC_MN10300_ALIGN 4052 The addend of this reloc is an alignment power that must be 4053 honoured at the offset's location, regardless of linker relaxation. 4054 4055 -- : BFD_RELOC_MN10300_TLS_GD 4056 -- : BFD_RELOC_MN10300_TLS_LD 4057 -- : BFD_RELOC_MN10300_TLS_LDO 4058 -- : BFD_RELOC_MN10300_TLS_GOTIE 4059 -- : BFD_RELOC_MN10300_TLS_IE 4060 -- : BFD_RELOC_MN10300_TLS_LE 4061 -- : BFD_RELOC_MN10300_TLS_DTPMOD 4062 -- : BFD_RELOC_MN10300_TLS_DTPOFF 4063 -- : BFD_RELOC_MN10300_TLS_TPOFF 4064 Various TLS-related relocations. 4065 4066 -- : BFD_RELOC_MN10300_32_PCREL 4067 This is a 32bit pcrel reloc for the mn10300, offset by two bytes 4068 in the instruction. 4069 4070 -- : BFD_RELOC_MN10300_16_PCREL 4071 This is a 16bit pcrel reloc for the mn10300, offset by two bytes 4072 in the instruction. 4073 4074 -- : BFD_RELOC_386_GOT32 4075 -- : BFD_RELOC_386_PLT32 4076 -- : BFD_RELOC_386_COPY 4077 -- : BFD_RELOC_386_GLOB_DAT 4078 -- : BFD_RELOC_386_JUMP_SLOT 4079 -- : BFD_RELOC_386_RELATIVE 4080 -- : BFD_RELOC_386_GOTOFF 4081 -- : BFD_RELOC_386_GOTPC 4082 -- : BFD_RELOC_386_TLS_TPOFF 4083 -- : BFD_RELOC_386_TLS_IE 4084 -- : BFD_RELOC_386_TLS_GOTIE 4085 -- : BFD_RELOC_386_TLS_LE 4086 -- : BFD_RELOC_386_TLS_GD 4087 -- : BFD_RELOC_386_TLS_LDM 4088 -- : BFD_RELOC_386_TLS_LDO_32 4089 -- : BFD_RELOC_386_TLS_IE_32 4090 -- : BFD_RELOC_386_TLS_LE_32 4091 -- : BFD_RELOC_386_TLS_DTPMOD32 4092 -- : BFD_RELOC_386_TLS_DTPOFF32 4093 -- : BFD_RELOC_386_TLS_TPOFF32 4094 -- : BFD_RELOC_386_TLS_GOTDESC 4095 -- : BFD_RELOC_386_TLS_DESC_CALL 4096 -- : BFD_RELOC_386_TLS_DESC 4097 -- : BFD_RELOC_386_IRELATIVE 4098 -- : BFD_RELOC_386_GOT32X 4099 i386/elf relocations 4100 4101 -- : BFD_RELOC_X86_64_GOT32 4102 -- : BFD_RELOC_X86_64_PLT32 4103 -- : BFD_RELOC_X86_64_COPY 4104 -- : BFD_RELOC_X86_64_GLOB_DAT 4105 -- : BFD_RELOC_X86_64_JUMP_SLOT 4106 -- : BFD_RELOC_X86_64_RELATIVE 4107 -- : BFD_RELOC_X86_64_GOTPCREL 4108 -- : BFD_RELOC_X86_64_32S 4109 -- : BFD_RELOC_X86_64_DTPMOD64 4110 -- : BFD_RELOC_X86_64_DTPOFF64 4111 -- : BFD_RELOC_X86_64_TPOFF64 4112 -- : BFD_RELOC_X86_64_TLSGD 4113 -- : BFD_RELOC_X86_64_TLSLD 4114 -- : BFD_RELOC_X86_64_DTPOFF32 4115 -- : BFD_RELOC_X86_64_GOTTPOFF 4116 -- : BFD_RELOC_X86_64_TPOFF32 4117 -- : BFD_RELOC_X86_64_GOTOFF64 4118 -- : BFD_RELOC_X86_64_GOTPC32 4119 -- : BFD_RELOC_X86_64_GOT64 4120 -- : BFD_RELOC_X86_64_GOTPCREL64 4121 -- : BFD_RELOC_X86_64_GOTPC64 4122 -- : BFD_RELOC_X86_64_GOTPLT64 4123 -- : BFD_RELOC_X86_64_PLTOFF64 4124 -- : BFD_RELOC_X86_64_GOTPC32_TLSDESC 4125 -- : BFD_RELOC_X86_64_TLSDESC_CALL 4126 -- : BFD_RELOC_X86_64_TLSDESC 4127 -- : BFD_RELOC_X86_64_IRELATIVE 4128 -- : BFD_RELOC_X86_64_PC32_BND 4129 -- : BFD_RELOC_X86_64_PLT32_BND 4130 -- : BFD_RELOC_X86_64_GOTPCRELX 4131 -- : BFD_RELOC_X86_64_REX_GOTPCRELX 4132 x86-64/elf relocations 4133 4134 -- : BFD_RELOC_NS32K_IMM_8 4135 -- : BFD_RELOC_NS32K_IMM_16 4136 -- : BFD_RELOC_NS32K_IMM_32 4137 -- : BFD_RELOC_NS32K_IMM_8_PCREL 4138 -- : BFD_RELOC_NS32K_IMM_16_PCREL 4139 -- : BFD_RELOC_NS32K_IMM_32_PCREL 4140 -- : BFD_RELOC_NS32K_DISP_8 4141 -- : BFD_RELOC_NS32K_DISP_16 4142 -- : BFD_RELOC_NS32K_DISP_32 4143 -- : BFD_RELOC_NS32K_DISP_8_PCREL 4144 -- : BFD_RELOC_NS32K_DISP_16_PCREL 4145 -- : BFD_RELOC_NS32K_DISP_32_PCREL 4146 ns32k relocations 4147 4148 -- : BFD_RELOC_PDP11_DISP_8_PCREL 4149 -- : BFD_RELOC_PDP11_DISP_6_PCREL 4150 PDP11 relocations 4151 4152 -- : BFD_RELOC_PJ_CODE_HI16 4153 -- : BFD_RELOC_PJ_CODE_LO16 4154 -- : BFD_RELOC_PJ_CODE_DIR16 4155 -- : BFD_RELOC_PJ_CODE_DIR32 4156 -- : BFD_RELOC_PJ_CODE_REL16 4157 -- : BFD_RELOC_PJ_CODE_REL32 4158 Picojava relocs. Not all of these appear in object files. 4159 4160 -- : BFD_RELOC_PPC_B26 4161 -- : BFD_RELOC_PPC_BA26 4162 -- : BFD_RELOC_PPC_TOC16 4163 -- : BFD_RELOC_PPC_B16 4164 -- : BFD_RELOC_PPC_B16_BRTAKEN 4165 -- : BFD_RELOC_PPC_B16_BRNTAKEN 4166 -- : BFD_RELOC_PPC_BA16 4167 -- : BFD_RELOC_PPC_BA16_BRTAKEN 4168 -- : BFD_RELOC_PPC_BA16_BRNTAKEN 4169 -- : BFD_RELOC_PPC_COPY 4170 -- : BFD_RELOC_PPC_GLOB_DAT 4171 -- : BFD_RELOC_PPC_JMP_SLOT 4172 -- : BFD_RELOC_PPC_RELATIVE 4173 -- : BFD_RELOC_PPC_LOCAL24PC 4174 -- : BFD_RELOC_PPC_EMB_NADDR32 4175 -- : BFD_RELOC_PPC_EMB_NADDR16 4176 -- : BFD_RELOC_PPC_EMB_NADDR16_LO 4177 -- : BFD_RELOC_PPC_EMB_NADDR16_HI 4178 -- : BFD_RELOC_PPC_EMB_NADDR16_HA 4179 -- : BFD_RELOC_PPC_EMB_SDAI16 4180 -- : BFD_RELOC_PPC_EMB_SDA2I16 4181 -- : BFD_RELOC_PPC_EMB_SDA2REL 4182 -- : BFD_RELOC_PPC_EMB_SDA21 4183 -- : BFD_RELOC_PPC_EMB_MRKREF 4184 -- : BFD_RELOC_PPC_EMB_RELSEC16 4185 -- : BFD_RELOC_PPC_EMB_RELST_LO 4186 -- : BFD_RELOC_PPC_EMB_RELST_HI 4187 -- : BFD_RELOC_PPC_EMB_RELST_HA 4188 -- : BFD_RELOC_PPC_EMB_BIT_FLD 4189 -- : BFD_RELOC_PPC_EMB_RELSDA 4190 -- : BFD_RELOC_PPC_VLE_REL8 4191 -- : BFD_RELOC_PPC_VLE_REL15 4192 -- : BFD_RELOC_PPC_VLE_REL24 4193 -- : BFD_RELOC_PPC_VLE_LO16A 4194 -- : BFD_RELOC_PPC_VLE_LO16D 4195 -- : BFD_RELOC_PPC_VLE_HI16A 4196 -- : BFD_RELOC_PPC_VLE_HI16D 4197 -- : BFD_RELOC_PPC_VLE_HA16A 4198 -- : BFD_RELOC_PPC_VLE_HA16D 4199 -- : BFD_RELOC_PPC_VLE_SDA21 4200 -- : BFD_RELOC_PPC_VLE_SDA21_LO 4201 -- : BFD_RELOC_PPC_VLE_SDAREL_LO16A 4202 -- : BFD_RELOC_PPC_VLE_SDAREL_LO16D 4203 -- : BFD_RELOC_PPC_VLE_SDAREL_HI16A 4204 -- : BFD_RELOC_PPC_VLE_SDAREL_HI16D 4205 -- : BFD_RELOC_PPC_VLE_SDAREL_HA16A 4206 -- : BFD_RELOC_PPC_VLE_SDAREL_HA16D 4207 -- : BFD_RELOC_PPC_REL16DX_HA 4208 -- : BFD_RELOC_PPC64_HIGHER 4209 -- : BFD_RELOC_PPC64_HIGHER_S 4210 -- : BFD_RELOC_PPC64_HIGHEST 4211 -- : BFD_RELOC_PPC64_HIGHEST_S 4212 -- : BFD_RELOC_PPC64_TOC16_LO 4213 -- : BFD_RELOC_PPC64_TOC16_HI 4214 -- : BFD_RELOC_PPC64_TOC16_HA 4215 -- : BFD_RELOC_PPC64_TOC 4216 -- : BFD_RELOC_PPC64_PLTGOT16 4217 -- : BFD_RELOC_PPC64_PLTGOT16_LO 4218 -- : BFD_RELOC_PPC64_PLTGOT16_HI 4219 -- : BFD_RELOC_PPC64_PLTGOT16_HA 4220 -- : BFD_RELOC_PPC64_ADDR16_DS 4221 -- : BFD_RELOC_PPC64_ADDR16_LO_DS 4222 -- : BFD_RELOC_PPC64_GOT16_DS 4223 -- : BFD_RELOC_PPC64_GOT16_LO_DS 4224 -- : BFD_RELOC_PPC64_PLT16_LO_DS 4225 -- : BFD_RELOC_PPC64_SECTOFF_DS 4226 -- : BFD_RELOC_PPC64_SECTOFF_LO_DS 4227 -- : BFD_RELOC_PPC64_TOC16_DS 4228 -- : BFD_RELOC_PPC64_TOC16_LO_DS 4229 -- : BFD_RELOC_PPC64_PLTGOT16_DS 4230 -- : BFD_RELOC_PPC64_PLTGOT16_LO_DS 4231 -- : BFD_RELOC_PPC64_ADDR16_HIGH 4232 -- : BFD_RELOC_PPC64_ADDR16_HIGHA 4233 -- : BFD_RELOC_PPC64_ADDR64_LOCAL 4234 -- : BFD_RELOC_PPC64_ENTRY 4235 Power(rs6000) and PowerPC relocations. 4236 4237 -- : BFD_RELOC_PPC_TLS 4238 -- : BFD_RELOC_PPC_TLSGD 4239 -- : BFD_RELOC_PPC_TLSLD 4240 -- : BFD_RELOC_PPC_DTPMOD 4241 -- : BFD_RELOC_PPC_TPREL16 4242 -- : BFD_RELOC_PPC_TPREL16_LO 4243 -- : BFD_RELOC_PPC_TPREL16_HI 4244 -- : BFD_RELOC_PPC_TPREL16_HA 4245 -- : BFD_RELOC_PPC_TPREL 4246 -- : BFD_RELOC_PPC_DTPREL16 4247 -- : BFD_RELOC_PPC_DTPREL16_LO 4248 -- : BFD_RELOC_PPC_DTPREL16_HI 4249 -- : BFD_RELOC_PPC_DTPREL16_HA 4250 -- : BFD_RELOC_PPC_DTPREL 4251 -- : BFD_RELOC_PPC_GOT_TLSGD16 4252 -- : BFD_RELOC_PPC_GOT_TLSGD16_LO 4253 -- : BFD_RELOC_PPC_GOT_TLSGD16_HI 4254 -- : BFD_RELOC_PPC_GOT_TLSGD16_HA 4255 -- : BFD_RELOC_PPC_GOT_TLSLD16 4256 -- : BFD_RELOC_PPC_GOT_TLSLD16_LO 4257 -- : BFD_RELOC_PPC_GOT_TLSLD16_HI 4258 -- : BFD_RELOC_PPC_GOT_TLSLD16_HA 4259 -- : BFD_RELOC_PPC_GOT_TPREL16 4260 -- : BFD_RELOC_PPC_GOT_TPREL16_LO 4261 -- : BFD_RELOC_PPC_GOT_TPREL16_HI 4262 -- : BFD_RELOC_PPC_GOT_TPREL16_HA 4263 -- : BFD_RELOC_PPC_GOT_DTPREL16 4264 -- : BFD_RELOC_PPC_GOT_DTPREL16_LO 4265 -- : BFD_RELOC_PPC_GOT_DTPREL16_HI 4266 -- : BFD_RELOC_PPC_GOT_DTPREL16_HA 4267 -- : BFD_RELOC_PPC64_TPREL16_DS 4268 -- : BFD_RELOC_PPC64_TPREL16_LO_DS 4269 -- : BFD_RELOC_PPC64_TPREL16_HIGHER 4270 -- : BFD_RELOC_PPC64_TPREL16_HIGHERA 4271 -- : BFD_RELOC_PPC64_TPREL16_HIGHEST 4272 -- : BFD_RELOC_PPC64_TPREL16_HIGHESTA 4273 -- : BFD_RELOC_PPC64_DTPREL16_DS 4274 -- : BFD_RELOC_PPC64_DTPREL16_LO_DS 4275 -- : BFD_RELOC_PPC64_DTPREL16_HIGHER 4276 -- : BFD_RELOC_PPC64_DTPREL16_HIGHERA 4277 -- : BFD_RELOC_PPC64_DTPREL16_HIGHEST 4278 -- : BFD_RELOC_PPC64_DTPREL16_HIGHESTA 4279 -- : BFD_RELOC_PPC64_TPREL16_HIGH 4280 -- : BFD_RELOC_PPC64_TPREL16_HIGHA 4281 -- : BFD_RELOC_PPC64_DTPREL16_HIGH 4282 -- : BFD_RELOC_PPC64_DTPREL16_HIGHA 4283 PowerPC and PowerPC64 thread-local storage relocations. 4284 4285 -- : BFD_RELOC_I370_D12 4286 IBM 370/390 relocations 4287 4288 -- : BFD_RELOC_CTOR 4289 The type of reloc used to build a constructor table - at the moment 4290 probably a 32 bit wide absolute relocation, but the target can 4291 choose. It generally does map to one of the other relocation 4292 types. 4293 4294 -- : BFD_RELOC_ARM_PCREL_BRANCH 4295 ARM 26 bit pc-relative branch. The lowest two bits must be zero 4296 and are not stored in the instruction. 4297 4298 -- : BFD_RELOC_ARM_PCREL_BLX 4299 ARM 26 bit pc-relative branch. The lowest bit must be zero and is 4300 not stored in the instruction. The 2nd lowest bit comes from a 1 4301 bit field in the instruction. 4302 4303 -- : BFD_RELOC_THUMB_PCREL_BLX 4304 Thumb 22 bit pc-relative branch. The lowest bit must be zero and 4305 is not stored in the instruction. The 2nd lowest bit comes from a 4306 1 bit field in the instruction. 4307 4308 -- : BFD_RELOC_ARM_PCREL_CALL 4309 ARM 26-bit pc-relative branch for an unconditional BL or BLX 4310 instruction. 4311 4312 -- : BFD_RELOC_ARM_PCREL_JUMP 4313 ARM 26-bit pc-relative branch for B or conditional BL instruction. 4314 4315 -- : BFD_RELOC_THUMB_PCREL_BRANCH7 4316 -- : BFD_RELOC_THUMB_PCREL_BRANCH9 4317 -- : BFD_RELOC_THUMB_PCREL_BRANCH12 4318 -- : BFD_RELOC_THUMB_PCREL_BRANCH20 4319 -- : BFD_RELOC_THUMB_PCREL_BRANCH23 4320 -- : BFD_RELOC_THUMB_PCREL_BRANCH25 4321 Thumb 7-, 9-, 12-, 20-, 23-, and 25-bit pc-relative branches. The 4322 lowest bit must be zero and is not stored in the instruction. 4323 Note that the corresponding ELF R_ARM_THM_JUMPnn constant has an 4324 "nn" one smaller in all cases. Note further that BRANCH23 4325 corresponds to R_ARM_THM_CALL. 4326 4327 -- : BFD_RELOC_ARM_OFFSET_IMM 4328 12-bit immediate offset, used in ARM-format ldr and str 4329 instructions. 4330 4331 -- : BFD_RELOC_ARM_THUMB_OFFSET 4332 5-bit immediate offset, used in Thumb-format ldr and str 4333 instructions. 4334 4335 -- : BFD_RELOC_ARM_TARGET1 4336 Pc-relative or absolute relocation depending on target. Used for 4337 entries in .init_array sections. 4338 4339 -- : BFD_RELOC_ARM_ROSEGREL32 4340 Read-only segment base relative address. 4341 4342 -- : BFD_RELOC_ARM_SBREL32 4343 Data segment base relative address. 4344 4345 -- : BFD_RELOC_ARM_TARGET2 4346 This reloc is used for references to RTTI data from exception 4347 handling tables. The actual definition depends on the target. It 4348 may be a pc-relative or some form of GOT-indirect relocation. 4349 4350 -- : BFD_RELOC_ARM_PREL31 4351 31-bit PC relative address. 4352 4353 -- : BFD_RELOC_ARM_MOVW 4354 -- : BFD_RELOC_ARM_MOVT 4355 -- : BFD_RELOC_ARM_MOVW_PCREL 4356 -- : BFD_RELOC_ARM_MOVT_PCREL 4357 -- : BFD_RELOC_ARM_THUMB_MOVW 4358 -- : BFD_RELOC_ARM_THUMB_MOVT 4359 -- : BFD_RELOC_ARM_THUMB_MOVW_PCREL 4360 -- : BFD_RELOC_ARM_THUMB_MOVT_PCREL 4361 Low and High halfword relocations for MOVW and MOVT instructions. 4362 4363 -- : BFD_RELOC_ARM_JUMP_SLOT 4364 -- : BFD_RELOC_ARM_GLOB_DAT 4365 -- : BFD_RELOC_ARM_GOT32 4366 -- : BFD_RELOC_ARM_PLT32 4367 -- : BFD_RELOC_ARM_RELATIVE 4368 -- : BFD_RELOC_ARM_GOTOFF 4369 -- : BFD_RELOC_ARM_GOTPC 4370 -- : BFD_RELOC_ARM_GOT_PREL 4371 Relocations for setting up GOTs and PLTs for shared libraries. 4372 4373 -- : BFD_RELOC_ARM_TLS_GD32 4374 -- : BFD_RELOC_ARM_TLS_LDO32 4375 -- : BFD_RELOC_ARM_TLS_LDM32 4376 -- : BFD_RELOC_ARM_TLS_DTPOFF32 4377 -- : BFD_RELOC_ARM_TLS_DTPMOD32 4378 -- : BFD_RELOC_ARM_TLS_TPOFF32 4379 -- : BFD_RELOC_ARM_TLS_IE32 4380 -- : BFD_RELOC_ARM_TLS_LE32 4381 -- : BFD_RELOC_ARM_TLS_GOTDESC 4382 -- : BFD_RELOC_ARM_TLS_CALL 4383 -- : BFD_RELOC_ARM_THM_TLS_CALL 4384 -- : BFD_RELOC_ARM_TLS_DESCSEQ 4385 -- : BFD_RELOC_ARM_THM_TLS_DESCSEQ 4386 -- : BFD_RELOC_ARM_TLS_DESC 4387 ARM thread-local storage relocations. 4388 4389 -- : BFD_RELOC_ARM_ALU_PC_G0_NC 4390 -- : BFD_RELOC_ARM_ALU_PC_G0 4391 -- : BFD_RELOC_ARM_ALU_PC_G1_NC 4392 -- : BFD_RELOC_ARM_ALU_PC_G1 4393 -- : BFD_RELOC_ARM_ALU_PC_G2 4394 -- : BFD_RELOC_ARM_LDR_PC_G0 4395 -- : BFD_RELOC_ARM_LDR_PC_G1 4396 -- : BFD_RELOC_ARM_LDR_PC_G2 4397 -- : BFD_RELOC_ARM_LDRS_PC_G0 4398 -- : BFD_RELOC_ARM_LDRS_PC_G1 4399 -- : BFD_RELOC_ARM_LDRS_PC_G2 4400 -- : BFD_RELOC_ARM_LDC_PC_G0 4401 -- : BFD_RELOC_ARM_LDC_PC_G1 4402 -- : BFD_RELOC_ARM_LDC_PC_G2 4403 -- : BFD_RELOC_ARM_ALU_SB_G0_NC 4404 -- : BFD_RELOC_ARM_ALU_SB_G0 4405 -- : BFD_RELOC_ARM_ALU_SB_G1_NC 4406 -- : BFD_RELOC_ARM_ALU_SB_G1 4407 -- : BFD_RELOC_ARM_ALU_SB_G2 4408 -- : BFD_RELOC_ARM_LDR_SB_G0 4409 -- : BFD_RELOC_ARM_LDR_SB_G1 4410 -- : BFD_RELOC_ARM_LDR_SB_G2 4411 -- : BFD_RELOC_ARM_LDRS_SB_G0 4412 -- : BFD_RELOC_ARM_LDRS_SB_G1 4413 -- : BFD_RELOC_ARM_LDRS_SB_G2 4414 -- : BFD_RELOC_ARM_LDC_SB_G0 4415 -- : BFD_RELOC_ARM_LDC_SB_G1 4416 -- : BFD_RELOC_ARM_LDC_SB_G2 4417 ARM group relocations. 4418 4419 -- : BFD_RELOC_ARM_V4BX 4420 Annotation of BX instructions. 4421 4422 -- : BFD_RELOC_ARM_IRELATIVE 4423 ARM support for STT_GNU_IFUNC. 4424 4425 -- : BFD_RELOC_ARM_THUMB_ALU_ABS_G0_NC 4426 -- : BFD_RELOC_ARM_THUMB_ALU_ABS_G1_NC 4427 -- : BFD_RELOC_ARM_THUMB_ALU_ABS_G2_NC 4428 -- : BFD_RELOC_ARM_THUMB_ALU_ABS_G3_NC 4429 Thumb1 relocations to support execute-only code. 4430 4431 -- : BFD_RELOC_ARM_IMMEDIATE 4432 -- : BFD_RELOC_ARM_ADRL_IMMEDIATE 4433 -- : BFD_RELOC_ARM_T32_IMMEDIATE 4434 -- : BFD_RELOC_ARM_T32_ADD_IMM 4435 -- : BFD_RELOC_ARM_T32_IMM12 4436 -- : BFD_RELOC_ARM_T32_ADD_PC12 4437 -- : BFD_RELOC_ARM_SHIFT_IMM 4438 -- : BFD_RELOC_ARM_SMC 4439 -- : BFD_RELOC_ARM_HVC 4440 -- : BFD_RELOC_ARM_SWI 4441 -- : BFD_RELOC_ARM_MULTI 4442 -- : BFD_RELOC_ARM_CP_OFF_IMM 4443 -- : BFD_RELOC_ARM_CP_OFF_IMM_S2 4444 -- : BFD_RELOC_ARM_T32_CP_OFF_IMM 4445 -- : BFD_RELOC_ARM_T32_CP_OFF_IMM_S2 4446 -- : BFD_RELOC_ARM_ADR_IMM 4447 -- : BFD_RELOC_ARM_LDR_IMM 4448 -- : BFD_RELOC_ARM_LITERAL 4449 -- : BFD_RELOC_ARM_IN_POOL 4450 -- : BFD_RELOC_ARM_OFFSET_IMM8 4451 -- : BFD_RELOC_ARM_T32_OFFSET_U8 4452 -- : BFD_RELOC_ARM_T32_OFFSET_IMM 4453 -- : BFD_RELOC_ARM_HWLITERAL 4454 -- : BFD_RELOC_ARM_THUMB_ADD 4455 -- : BFD_RELOC_ARM_THUMB_IMM 4456 -- : BFD_RELOC_ARM_THUMB_SHIFT 4457 These relocs are only used within the ARM assembler. They are not 4458 (at present) written to any object files. 4459 4460 -- : BFD_RELOC_SH_PCDISP8BY2 4461 -- : BFD_RELOC_SH_PCDISP12BY2 4462 -- : BFD_RELOC_SH_IMM3 4463 -- : BFD_RELOC_SH_IMM3U 4464 -- : BFD_RELOC_SH_DISP12 4465 -- : BFD_RELOC_SH_DISP12BY2 4466 -- : BFD_RELOC_SH_DISP12BY4 4467 -- : BFD_RELOC_SH_DISP12BY8 4468 -- : BFD_RELOC_SH_DISP20 4469 -- : BFD_RELOC_SH_DISP20BY8 4470 -- : BFD_RELOC_SH_IMM4 4471 -- : BFD_RELOC_SH_IMM4BY2 4472 -- : BFD_RELOC_SH_IMM4BY4 4473 -- : BFD_RELOC_SH_IMM8 4474 -- : BFD_RELOC_SH_IMM8BY2 4475 -- : BFD_RELOC_SH_IMM8BY4 4476 -- : BFD_RELOC_SH_PCRELIMM8BY2 4477 -- : BFD_RELOC_SH_PCRELIMM8BY4 4478 -- : BFD_RELOC_SH_SWITCH16 4479 -- : BFD_RELOC_SH_SWITCH32 4480 -- : BFD_RELOC_SH_USES 4481 -- : BFD_RELOC_SH_COUNT 4482 -- : BFD_RELOC_SH_ALIGN 4483 -- : BFD_RELOC_SH_CODE 4484 -- : BFD_RELOC_SH_DATA 4485 -- : BFD_RELOC_SH_LABEL 4486 -- : BFD_RELOC_SH_LOOP_START 4487 -- : BFD_RELOC_SH_LOOP_END 4488 -- : BFD_RELOC_SH_COPY 4489 -- : BFD_RELOC_SH_GLOB_DAT 4490 -- : BFD_RELOC_SH_JMP_SLOT 4491 -- : BFD_RELOC_SH_RELATIVE 4492 -- : BFD_RELOC_SH_GOTPC 4493 -- : BFD_RELOC_SH_GOT_LOW16 4494 -- : BFD_RELOC_SH_GOT_MEDLOW16 4495 -- : BFD_RELOC_SH_GOT_MEDHI16 4496 -- : BFD_RELOC_SH_GOT_HI16 4497 -- : BFD_RELOC_SH_GOTPLT_LOW16 4498 -- : BFD_RELOC_SH_GOTPLT_MEDLOW16 4499 -- : BFD_RELOC_SH_GOTPLT_MEDHI16 4500 -- : BFD_RELOC_SH_GOTPLT_HI16 4501 -- : BFD_RELOC_SH_PLT_LOW16 4502 -- : BFD_RELOC_SH_PLT_MEDLOW16 4503 -- : BFD_RELOC_SH_PLT_MEDHI16 4504 -- : BFD_RELOC_SH_PLT_HI16 4505 -- : BFD_RELOC_SH_GOTOFF_LOW16 4506 -- : BFD_RELOC_SH_GOTOFF_MEDLOW16 4507 -- : BFD_RELOC_SH_GOTOFF_MEDHI16 4508 -- : BFD_RELOC_SH_GOTOFF_HI16 4509 -- : BFD_RELOC_SH_GOTPC_LOW16 4510 -- : BFD_RELOC_SH_GOTPC_MEDLOW16 4511 -- : BFD_RELOC_SH_GOTPC_MEDHI16 4512 -- : BFD_RELOC_SH_GOTPC_HI16 4513 -- : BFD_RELOC_SH_COPY64 4514 -- : BFD_RELOC_SH_GLOB_DAT64 4515 -- : BFD_RELOC_SH_JMP_SLOT64 4516 -- : BFD_RELOC_SH_RELATIVE64 4517 -- : BFD_RELOC_SH_GOT10BY4 4518 -- : BFD_RELOC_SH_GOT10BY8 4519 -- : BFD_RELOC_SH_GOTPLT10BY4 4520 -- : BFD_RELOC_SH_GOTPLT10BY8 4521 -- : BFD_RELOC_SH_GOTPLT32 4522 -- : BFD_RELOC_SH_SHMEDIA_CODE 4523 -- : BFD_RELOC_SH_IMMU5 4524 -- : BFD_RELOC_SH_IMMS6 4525 -- : BFD_RELOC_SH_IMMS6BY32 4526 -- : BFD_RELOC_SH_IMMU6 4527 -- : BFD_RELOC_SH_IMMS10 4528 -- : BFD_RELOC_SH_IMMS10BY2 4529 -- : BFD_RELOC_SH_IMMS10BY4 4530 -- : BFD_RELOC_SH_IMMS10BY8 4531 -- : BFD_RELOC_SH_IMMS16 4532 -- : BFD_RELOC_SH_IMMU16 4533 -- : BFD_RELOC_SH_IMM_LOW16 4534 -- : BFD_RELOC_SH_IMM_LOW16_PCREL 4535 -- : BFD_RELOC_SH_IMM_MEDLOW16 4536 -- : BFD_RELOC_SH_IMM_MEDLOW16_PCREL 4537 -- : BFD_RELOC_SH_IMM_MEDHI16 4538 -- : BFD_RELOC_SH_IMM_MEDHI16_PCREL 4539 -- : BFD_RELOC_SH_IMM_HI16 4540 -- : BFD_RELOC_SH_IMM_HI16_PCREL 4541 -- : BFD_RELOC_SH_PT_16 4542 -- : BFD_RELOC_SH_TLS_GD_32 4543 -- : BFD_RELOC_SH_TLS_LD_32 4544 -- : BFD_RELOC_SH_TLS_LDO_32 4545 -- : BFD_RELOC_SH_TLS_IE_32 4546 -- : BFD_RELOC_SH_TLS_LE_32 4547 -- : BFD_RELOC_SH_TLS_DTPMOD32 4548 -- : BFD_RELOC_SH_TLS_DTPOFF32 4549 -- : BFD_RELOC_SH_TLS_TPOFF32 4550 -- : BFD_RELOC_SH_GOT20 4551 -- : BFD_RELOC_SH_GOTOFF20 4552 -- : BFD_RELOC_SH_GOTFUNCDESC 4553 -- : BFD_RELOC_SH_GOTFUNCDESC20 4554 -- : BFD_RELOC_SH_GOTOFFFUNCDESC 4555 -- : BFD_RELOC_SH_GOTOFFFUNCDESC20 4556 -- : BFD_RELOC_SH_FUNCDESC 4557 Renesas / SuperH SH relocs. Not all of these appear in object 4558 files. 4559 4560 -- : BFD_RELOC_ARC_NONE 4561 -- : BFD_RELOC_ARC_8 4562 -- : BFD_RELOC_ARC_16 4563 -- : BFD_RELOC_ARC_24 4564 -- : BFD_RELOC_ARC_32 4565 -- : BFD_RELOC_ARC_N8 4566 -- : BFD_RELOC_ARC_N16 4567 -- : BFD_RELOC_ARC_N24 4568 -- : BFD_RELOC_ARC_N32 4569 -- : BFD_RELOC_ARC_SDA 4570 -- : BFD_RELOC_ARC_SECTOFF 4571 -- : BFD_RELOC_ARC_S21H_PCREL 4572 -- : BFD_RELOC_ARC_S21W_PCREL 4573 -- : BFD_RELOC_ARC_S25H_PCREL 4574 -- : BFD_RELOC_ARC_S25W_PCREL 4575 -- : BFD_RELOC_ARC_SDA32 4576 -- : BFD_RELOC_ARC_SDA_LDST 4577 -- : BFD_RELOC_ARC_SDA_LDST1 4578 -- : BFD_RELOC_ARC_SDA_LDST2 4579 -- : BFD_RELOC_ARC_SDA16_LD 4580 -- : BFD_RELOC_ARC_SDA16_LD1 4581 -- : BFD_RELOC_ARC_SDA16_LD2 4582 -- : BFD_RELOC_ARC_S13_PCREL 4583 -- : BFD_RELOC_ARC_W 4584 -- : BFD_RELOC_ARC_32_ME 4585 -- : BFD_RELOC_ARC_32_ME_S 4586 -- : BFD_RELOC_ARC_N32_ME 4587 -- : BFD_RELOC_ARC_SECTOFF_ME 4588 -- : BFD_RELOC_ARC_SDA32_ME 4589 -- : BFD_RELOC_ARC_W_ME 4590 -- : BFD_RELOC_AC_SECTOFF_U8 4591 -- : BFD_RELOC_AC_SECTOFF_U8_1 4592 -- : BFD_RELOC_AC_SECTOFF_U8_2 4593 -- : BFD_RELOC_AC_SECTFOFF_S9 4594 -- : BFD_RELOC_AC_SECTFOFF_S9_1 4595 -- : BFD_RELOC_AC_SECTFOFF_S9_2 4596 -- : BFD_RELOC_ARC_SECTOFF_ME_1 4597 -- : BFD_RELOC_ARC_SECTOFF_ME_2 4598 -- : BFD_RELOC_ARC_SECTOFF_1 4599 -- : BFD_RELOC_ARC_SECTOFF_2 4600 -- : BFD_RELOC_ARC_SDA16_ST2 4601 -- : BFD_RELOC_ARC_32_PCREL 4602 -- : BFD_RELOC_ARC_PC32 4603 -- : BFD_RELOC_ARC_GOT32 4604 -- : BFD_RELOC_ARC_GOTPC32 4605 -- : BFD_RELOC_ARC_PLT32 4606 -- : BFD_RELOC_ARC_COPY 4607 -- : BFD_RELOC_ARC_GLOB_DAT 4608 -- : BFD_RELOC_ARC_JMP_SLOT 4609 -- : BFD_RELOC_ARC_RELATIVE 4610 -- : BFD_RELOC_ARC_GOTOFF 4611 -- : BFD_RELOC_ARC_GOTPC 4612 -- : BFD_RELOC_ARC_S21W_PCREL_PLT 4613 -- : BFD_RELOC_ARC_S25H_PCREL_PLT 4614 -- : BFD_RELOC_ARC_TLS_DTPMOD 4615 -- : BFD_RELOC_ARC_TLS_TPOFF 4616 -- : BFD_RELOC_ARC_TLS_GD_GOT 4617 -- : BFD_RELOC_ARC_TLS_GD_LD 4618 -- : BFD_RELOC_ARC_TLS_GD_CALL 4619 -- : BFD_RELOC_ARC_TLS_IE_GOT 4620 -- : BFD_RELOC_ARC_TLS_DTPOFF 4621 -- : BFD_RELOC_ARC_TLS_DTPOFF_S9 4622 -- : BFD_RELOC_ARC_TLS_LE_S9 4623 -- : BFD_RELOC_ARC_TLS_LE_32 4624 -- : BFD_RELOC_ARC_S25W_PCREL_PLT 4625 -- : BFD_RELOC_ARC_S21H_PCREL_PLT 4626 -- : BFD_RELOC_ARC_NPS_CMEM16 4627 ARC relocs. 4628 4629 -- : BFD_RELOC_BFIN_16_IMM 4630 ADI Blackfin 16 bit immediate absolute reloc. 4631 4632 -- : BFD_RELOC_BFIN_16_HIGH 4633 ADI Blackfin 16 bit immediate absolute reloc higher 16 bits. 4634 4635 -- : BFD_RELOC_BFIN_4_PCREL 4636 ADI Blackfin 'a' part of LSETUP. 4637 4638 -- : BFD_RELOC_BFIN_5_PCREL 4639 ADI Blackfin. 4640 4641 -- : BFD_RELOC_BFIN_16_LOW 4642 ADI Blackfin 16 bit immediate absolute reloc lower 16 bits. 4643 4644 -- : BFD_RELOC_BFIN_10_PCREL 4645 ADI Blackfin. 4646 4647 -- : BFD_RELOC_BFIN_11_PCREL 4648 ADI Blackfin 'b' part of LSETUP. 4649 4650 -- : BFD_RELOC_BFIN_12_PCREL_JUMP 4651 ADI Blackfin. 4652 4653 -- : BFD_RELOC_BFIN_12_PCREL_JUMP_S 4654 ADI Blackfin Short jump, pcrel. 4655 4656 -- : BFD_RELOC_BFIN_24_PCREL_CALL_X 4657 ADI Blackfin Call.x not implemented. 4658 4659 -- : BFD_RELOC_BFIN_24_PCREL_JUMP_L 4660 ADI Blackfin Long Jump pcrel. 4661 4662 -- : BFD_RELOC_BFIN_GOT17M4 4663 -- : BFD_RELOC_BFIN_GOTHI 4664 -- : BFD_RELOC_BFIN_GOTLO 4665 -- : BFD_RELOC_BFIN_FUNCDESC 4666 -- : BFD_RELOC_BFIN_FUNCDESC_GOT17M4 4667 -- : BFD_RELOC_BFIN_FUNCDESC_GOTHI 4668 -- : BFD_RELOC_BFIN_FUNCDESC_GOTLO 4669 -- : BFD_RELOC_BFIN_FUNCDESC_VALUE 4670 -- : BFD_RELOC_BFIN_FUNCDESC_GOTOFF17M4 4671 -- : BFD_RELOC_BFIN_FUNCDESC_GOTOFFHI 4672 -- : BFD_RELOC_BFIN_FUNCDESC_GOTOFFLO 4673 -- : BFD_RELOC_BFIN_GOTOFF17M4 4674 -- : BFD_RELOC_BFIN_GOTOFFHI 4675 -- : BFD_RELOC_BFIN_GOTOFFLO 4676 ADI Blackfin FD-PIC relocations. 4677 4678 -- : BFD_RELOC_BFIN_GOT 4679 ADI Blackfin GOT relocation. 4680 4681 -- : BFD_RELOC_BFIN_PLTPC 4682 ADI Blackfin PLTPC relocation. 4683 4684 -- : BFD_ARELOC_BFIN_PUSH 4685 ADI Blackfin arithmetic relocation. 4686 4687 -- : BFD_ARELOC_BFIN_CONST 4688 ADI Blackfin arithmetic relocation. 4689 4690 -- : BFD_ARELOC_BFIN_ADD 4691 ADI Blackfin arithmetic relocation. 4692 4693 -- : BFD_ARELOC_BFIN_SUB 4694 ADI Blackfin arithmetic relocation. 4695 4696 -- : BFD_ARELOC_BFIN_MULT 4697 ADI Blackfin arithmetic relocation. 4698 4699 -- : BFD_ARELOC_BFIN_DIV 4700 ADI Blackfin arithmetic relocation. 4701 4702 -- : BFD_ARELOC_BFIN_MOD 4703 ADI Blackfin arithmetic relocation. 4704 4705 -- : BFD_ARELOC_BFIN_LSHIFT 4706 ADI Blackfin arithmetic relocation. 4707 4708 -- : BFD_ARELOC_BFIN_RSHIFT 4709 ADI Blackfin arithmetic relocation. 4710 4711 -- : BFD_ARELOC_BFIN_AND 4712 ADI Blackfin arithmetic relocation. 4713 4714 -- : BFD_ARELOC_BFIN_OR 4715 ADI Blackfin arithmetic relocation. 4716 4717 -- : BFD_ARELOC_BFIN_XOR 4718 ADI Blackfin arithmetic relocation. 4719 4720 -- : BFD_ARELOC_BFIN_LAND 4721 ADI Blackfin arithmetic relocation. 4722 4723 -- : BFD_ARELOC_BFIN_LOR 4724 ADI Blackfin arithmetic relocation. 4725 4726 -- : BFD_ARELOC_BFIN_LEN 4727 ADI Blackfin arithmetic relocation. 4728 4729 -- : BFD_ARELOC_BFIN_NEG 4730 ADI Blackfin arithmetic relocation. 4731 4732 -- : BFD_ARELOC_BFIN_COMP 4733 ADI Blackfin arithmetic relocation. 4734 4735 -- : BFD_ARELOC_BFIN_PAGE 4736 ADI Blackfin arithmetic relocation. 4737 4738 -- : BFD_ARELOC_BFIN_HWPAGE 4739 ADI Blackfin arithmetic relocation. 4740 4741 -- : BFD_ARELOC_BFIN_ADDR 4742 ADI Blackfin arithmetic relocation. 4743 4744 -- : BFD_RELOC_D10V_10_PCREL_R 4745 Mitsubishi D10V relocs. This is a 10-bit reloc with the right 2 4746 bits assumed to be 0. 4747 4748 -- : BFD_RELOC_D10V_10_PCREL_L 4749 Mitsubishi D10V relocs. This is a 10-bit reloc with the right 2 4750 bits assumed to be 0. This is the same as the previous reloc 4751 except it is in the left container, i.e., shifted left 15 bits. 4752 4753 -- : BFD_RELOC_D10V_18 4754 This is an 18-bit reloc with the right 2 bits assumed to be 0. 4755 4756 -- : BFD_RELOC_D10V_18_PCREL 4757 This is an 18-bit reloc with the right 2 bits assumed to be 0. 4758 4759 -- : BFD_RELOC_D30V_6 4760 Mitsubishi D30V relocs. This is a 6-bit absolute reloc. 4761 4762 -- : BFD_RELOC_D30V_9_PCREL 4763 This is a 6-bit pc-relative reloc with the right 3 bits assumed to 4764 be 0. 4765 4766 -- : BFD_RELOC_D30V_9_PCREL_R 4767 This is a 6-bit pc-relative reloc with the right 3 bits assumed to 4768 be 0. Same as the previous reloc but on the right side of the 4769 container. 4770 4771 -- : BFD_RELOC_D30V_15 4772 This is a 12-bit absolute reloc with the right 3 bitsassumed to be 4773 0. 4774 4775 -- : BFD_RELOC_D30V_15_PCREL 4776 This is a 12-bit pc-relative reloc with the right 3 bits assumed 4777 to be 0. 4778 4779 -- : BFD_RELOC_D30V_15_PCREL_R 4780 This is a 12-bit pc-relative reloc with the right 3 bits assumed 4781 to be 0. Same as the previous reloc but on the right side of the 4782 container. 4783 4784 -- : BFD_RELOC_D30V_21 4785 This is an 18-bit absolute reloc with the right 3 bits assumed to 4786 be 0. 4787 4788 -- : BFD_RELOC_D30V_21_PCREL 4789 This is an 18-bit pc-relative reloc with the right 3 bits assumed 4790 to be 0. 4791 4792 -- : BFD_RELOC_D30V_21_PCREL_R 4793 This is an 18-bit pc-relative reloc with the right 3 bits assumed 4794 to be 0. Same as the previous reloc but on the right side of the 4795 container. 4796 4797 -- : BFD_RELOC_D30V_32 4798 This is a 32-bit absolute reloc. 4799 4800 -- : BFD_RELOC_D30V_32_PCREL 4801 This is a 32-bit pc-relative reloc. 4802 4803 -- : BFD_RELOC_DLX_HI16_S 4804 DLX relocs 4805 4806 -- : BFD_RELOC_DLX_LO16 4807 DLX relocs 4808 4809 -- : BFD_RELOC_DLX_JMP26 4810 DLX relocs 4811 4812 -- : BFD_RELOC_M32C_HI8 4813 -- : BFD_RELOC_M32C_RL_JUMP 4814 -- : BFD_RELOC_M32C_RL_1ADDR 4815 -- : BFD_RELOC_M32C_RL_2ADDR 4816 Renesas M16C/M32C Relocations. 4817 4818 -- : BFD_RELOC_M32R_24 4819 Renesas M32R (formerly Mitsubishi M32R) relocs. This is a 24 bit 4820 absolute address. 4821 4822 -- : BFD_RELOC_M32R_10_PCREL 4823 This is a 10-bit pc-relative reloc with the right 2 bits assumed 4824 to be 0. 4825 4826 -- : BFD_RELOC_M32R_18_PCREL 4827 This is an 18-bit reloc with the right 2 bits assumed to be 0. 4828 4829 -- : BFD_RELOC_M32R_26_PCREL 4830 This is a 26-bit reloc with the right 2 bits assumed to be 0. 4831 4832 -- : BFD_RELOC_M32R_HI16_ULO 4833 This is a 16-bit reloc containing the high 16 bits of an address 4834 used when the lower 16 bits are treated as unsigned. 4835 4836 -- : BFD_RELOC_M32R_HI16_SLO 4837 This is a 16-bit reloc containing the high 16 bits of an address 4838 used when the lower 16 bits are treated as signed. 4839 4840 -- : BFD_RELOC_M32R_LO16 4841 This is a 16-bit reloc containing the lower 16 bits of an address. 4842 4843 -- : BFD_RELOC_M32R_SDA16 4844 This is a 16-bit reloc containing the small data area offset for 4845 use in add3, load, and store instructions. 4846 4847 -- : BFD_RELOC_M32R_GOT24 4848 -- : BFD_RELOC_M32R_26_PLTREL 4849 -- : BFD_RELOC_M32R_COPY 4850 -- : BFD_RELOC_M32R_GLOB_DAT 4851 -- : BFD_RELOC_M32R_JMP_SLOT 4852 -- : BFD_RELOC_M32R_RELATIVE 4853 -- : BFD_RELOC_M32R_GOTOFF 4854 -- : BFD_RELOC_M32R_GOTOFF_HI_ULO 4855 -- : BFD_RELOC_M32R_GOTOFF_HI_SLO 4856 -- : BFD_RELOC_M32R_GOTOFF_LO 4857 -- : BFD_RELOC_M32R_GOTPC24 4858 -- : BFD_RELOC_M32R_GOT16_HI_ULO 4859 -- : BFD_RELOC_M32R_GOT16_HI_SLO 4860 -- : BFD_RELOC_M32R_GOT16_LO 4861 -- : BFD_RELOC_M32R_GOTPC_HI_ULO 4862 -- : BFD_RELOC_M32R_GOTPC_HI_SLO 4863 -- : BFD_RELOC_M32R_GOTPC_LO 4864 For PIC. 4865 4866 -- : BFD_RELOC_NDS32_20 4867 NDS32 relocs. This is a 20 bit absolute address. 4868 4869 -- : BFD_RELOC_NDS32_9_PCREL 4870 This is a 9-bit pc-relative reloc with the right 1 bit assumed to 4871 be 0. 4872 4873 -- : BFD_RELOC_NDS32_WORD_9_PCREL 4874 This is a 9-bit pc-relative reloc with the right 1 bit assumed to 4875 be 0. 4876 4877 -- : BFD_RELOC_NDS32_15_PCREL 4878 This is an 15-bit reloc with the right 1 bit assumed to be 0. 4879 4880 -- : BFD_RELOC_NDS32_17_PCREL 4881 This is an 17-bit reloc with the right 1 bit assumed to be 0. 4882 4883 -- : BFD_RELOC_NDS32_25_PCREL 4884 This is a 25-bit reloc with the right 1 bit assumed to be 0. 4885 4886 -- : BFD_RELOC_NDS32_HI20 4887 This is a 20-bit reloc containing the high 20 bits of an address 4888 used with the lower 12 bits 4889 4890 -- : BFD_RELOC_NDS32_LO12S3 4891 This is a 12-bit reloc containing the lower 12 bits of an address 4892 then shift right by 3. This is used with ldi,sdi... 4893 4894 -- : BFD_RELOC_NDS32_LO12S2 4895 This is a 12-bit reloc containing the lower 12 bits of an address 4896 then shift left by 2. This is used with lwi,swi... 4897 4898 -- : BFD_RELOC_NDS32_LO12S1 4899 This is a 12-bit reloc containing the lower 12 bits of an address 4900 then shift left by 1. This is used with lhi,shi... 4901 4902 -- : BFD_RELOC_NDS32_LO12S0 4903 This is a 12-bit reloc containing the lower 12 bits of an address 4904 then shift left by 0. This is used with lbisbi... 4905 4906 -- : BFD_RELOC_NDS32_LO12S0_ORI 4907 This is a 12-bit reloc containing the lower 12 bits of an address 4908 then shift left by 0. This is only used with branch relaxations 4909 4910 -- : BFD_RELOC_NDS32_SDA15S3 4911 This is a 15-bit reloc containing the small data area 18-bit 4912 signed offset and shift left by 3 for use in ldi, sdi... 4913 4914 -- : BFD_RELOC_NDS32_SDA15S2 4915 This is a 15-bit reloc containing the small data area 17-bit 4916 signed offset and shift left by 2 for use in lwi, swi... 4917 4918 -- : BFD_RELOC_NDS32_SDA15S1 4919 This is a 15-bit reloc containing the small data area 16-bit 4920 signed offset and shift left by 1 for use in lhi, shi... 4921 4922 -- : BFD_RELOC_NDS32_SDA15S0 4923 This is a 15-bit reloc containing the small data area 15-bit 4924 signed offset and shift left by 0 for use in lbi, sbi... 4925 4926 -- : BFD_RELOC_NDS32_SDA16S3 4927 This is a 16-bit reloc containing the small data area 16-bit 4928 signed offset and shift left by 3 4929 4930 -- : BFD_RELOC_NDS32_SDA17S2 4931 This is a 17-bit reloc containing the small data area 17-bit 4932 signed offset and shift left by 2 for use in lwi.gp, swi.gp... 4933 4934 -- : BFD_RELOC_NDS32_SDA18S1 4935 This is a 18-bit reloc containing the small data area 18-bit 4936 signed offset and shift left by 1 for use in lhi.gp, shi.gp... 4937 4938 -- : BFD_RELOC_NDS32_SDA19S0 4939 This is a 19-bit reloc containing the small data area 19-bit 4940 signed offset and shift left by 0 for use in lbi.gp, sbi.gp... 4941 4942 -- : BFD_RELOC_NDS32_GOT20 4943 -- : BFD_RELOC_NDS32_9_PLTREL 4944 -- : BFD_RELOC_NDS32_25_PLTREL 4945 -- : BFD_RELOC_NDS32_COPY 4946 -- : BFD_RELOC_NDS32_GLOB_DAT 4947 -- : BFD_RELOC_NDS32_JMP_SLOT 4948 -- : BFD_RELOC_NDS32_RELATIVE 4949 -- : BFD_RELOC_NDS32_GOTOFF 4950 -- : BFD_RELOC_NDS32_GOTOFF_HI20 4951 -- : BFD_RELOC_NDS32_GOTOFF_LO12 4952 -- : BFD_RELOC_NDS32_GOTPC20 4953 -- : BFD_RELOC_NDS32_GOT_HI20 4954 -- : BFD_RELOC_NDS32_GOT_LO12 4955 -- : BFD_RELOC_NDS32_GOTPC_HI20 4956 -- : BFD_RELOC_NDS32_GOTPC_LO12 4957 for PIC 4958 4959 -- : BFD_RELOC_NDS32_INSN16 4960 -- : BFD_RELOC_NDS32_LABEL 4961 -- : BFD_RELOC_NDS32_LONGCALL1 4962 -- : BFD_RELOC_NDS32_LONGCALL2 4963 -- : BFD_RELOC_NDS32_LONGCALL3 4964 -- : BFD_RELOC_NDS32_LONGJUMP1 4965 -- : BFD_RELOC_NDS32_LONGJUMP2 4966 -- : BFD_RELOC_NDS32_LONGJUMP3 4967 -- : BFD_RELOC_NDS32_LOADSTORE 4968 -- : BFD_RELOC_NDS32_9_FIXED 4969 -- : BFD_RELOC_NDS32_15_FIXED 4970 -- : BFD_RELOC_NDS32_17_FIXED 4971 -- : BFD_RELOC_NDS32_25_FIXED 4972 -- : BFD_RELOC_NDS32_LONGCALL4 4973 -- : BFD_RELOC_NDS32_LONGCALL5 4974 -- : BFD_RELOC_NDS32_LONGCALL6 4975 -- : BFD_RELOC_NDS32_LONGJUMP4 4976 -- : BFD_RELOC_NDS32_LONGJUMP5 4977 -- : BFD_RELOC_NDS32_LONGJUMP6 4978 -- : BFD_RELOC_NDS32_LONGJUMP7 4979 for relax 4980 4981 -- : BFD_RELOC_NDS32_PLTREL_HI20 4982 -- : BFD_RELOC_NDS32_PLTREL_LO12 4983 -- : BFD_RELOC_NDS32_PLT_GOTREL_HI20 4984 -- : BFD_RELOC_NDS32_PLT_GOTREL_LO12 4985 for PIC 4986 4987 -- : BFD_RELOC_NDS32_SDA12S2_DP 4988 -- : BFD_RELOC_NDS32_SDA12S2_SP 4989 -- : BFD_RELOC_NDS32_LO12S2_DP 4990 -- : BFD_RELOC_NDS32_LO12S2_SP 4991 for floating point 4992 4993 -- : BFD_RELOC_NDS32_DWARF2_OP1 4994 -- : BFD_RELOC_NDS32_DWARF2_OP2 4995 -- : BFD_RELOC_NDS32_DWARF2_LEB 4996 for dwarf2 debug_line. 4997 4998 -- : BFD_RELOC_NDS32_UPDATE_TA 4999 for eliminate 16-bit instructions 5000 5001 -- : BFD_RELOC_NDS32_PLT_GOTREL_LO20 5002 -- : BFD_RELOC_NDS32_PLT_GOTREL_LO15 5003 -- : BFD_RELOC_NDS32_PLT_GOTREL_LO19 5004 -- : BFD_RELOC_NDS32_GOT_LO15 5005 -- : BFD_RELOC_NDS32_GOT_LO19 5006 -- : BFD_RELOC_NDS32_GOTOFF_LO15 5007 -- : BFD_RELOC_NDS32_GOTOFF_LO19 5008 -- : BFD_RELOC_NDS32_GOT15S2 5009 -- : BFD_RELOC_NDS32_GOT17S2 5010 for PIC object relaxation 5011 5012 -- : BFD_RELOC_NDS32_5 5013 NDS32 relocs. This is a 5 bit absolute address. 5014 5015 -- : BFD_RELOC_NDS32_10_UPCREL 5016 This is a 10-bit unsigned pc-relative reloc with the right 1 bit 5017 assumed to be 0. 5018 5019 -- : BFD_RELOC_NDS32_SDA_FP7U2_RELA 5020 If fp were omitted, fp can used as another gp. 5021 5022 -- : BFD_RELOC_NDS32_RELAX_ENTRY 5023 -- : BFD_RELOC_NDS32_GOT_SUFF 5024 -- : BFD_RELOC_NDS32_GOTOFF_SUFF 5025 -- : BFD_RELOC_NDS32_PLT_GOT_SUFF 5026 -- : BFD_RELOC_NDS32_MULCALL_SUFF 5027 -- : BFD_RELOC_NDS32_PTR 5028 -- : BFD_RELOC_NDS32_PTR_COUNT 5029 -- : BFD_RELOC_NDS32_PTR_RESOLVED 5030 -- : BFD_RELOC_NDS32_PLTBLOCK 5031 -- : BFD_RELOC_NDS32_RELAX_REGION_BEGIN 5032 -- : BFD_RELOC_NDS32_RELAX_REGION_END 5033 -- : BFD_RELOC_NDS32_MINUEND 5034 -- : BFD_RELOC_NDS32_SUBTRAHEND 5035 -- : BFD_RELOC_NDS32_DIFF8 5036 -- : BFD_RELOC_NDS32_DIFF16 5037 -- : BFD_RELOC_NDS32_DIFF32 5038 -- : BFD_RELOC_NDS32_DIFF_ULEB128 5039 -- : BFD_RELOC_NDS32_EMPTY 5040 relaxation relative relocation types 5041 5042 -- : BFD_RELOC_NDS32_25_ABS 5043 This is a 25 bit absolute address. 5044 5045 -- : BFD_RELOC_NDS32_DATA 5046 -- : BFD_RELOC_NDS32_TRAN 5047 -- : BFD_RELOC_NDS32_17IFC_PCREL 5048 -- : BFD_RELOC_NDS32_10IFCU_PCREL 5049 For ex9 and ifc using. 5050 5051 -- : BFD_RELOC_NDS32_TPOFF 5052 -- : BFD_RELOC_NDS32_TLS_LE_HI20 5053 -- : BFD_RELOC_NDS32_TLS_LE_LO12 5054 -- : BFD_RELOC_NDS32_TLS_LE_ADD 5055 -- : BFD_RELOC_NDS32_TLS_LE_LS 5056 -- : BFD_RELOC_NDS32_GOTTPOFF 5057 -- : BFD_RELOC_NDS32_TLS_IE_HI20 5058 -- : BFD_RELOC_NDS32_TLS_IE_LO12S2 5059 -- : BFD_RELOC_NDS32_TLS_TPOFF 5060 -- : BFD_RELOC_NDS32_TLS_LE_20 5061 -- : BFD_RELOC_NDS32_TLS_LE_15S0 5062 -- : BFD_RELOC_NDS32_TLS_LE_15S1 5063 -- : BFD_RELOC_NDS32_TLS_LE_15S2 5064 For TLS. 5065 5066 -- : BFD_RELOC_V850_9_PCREL 5067 This is a 9-bit reloc 5068 5069 -- : BFD_RELOC_V850_22_PCREL 5070 This is a 22-bit reloc 5071 5072 -- : BFD_RELOC_V850_SDA_16_16_OFFSET 5073 This is a 16 bit offset from the short data area pointer. 5074 5075 -- : BFD_RELOC_V850_SDA_15_16_OFFSET 5076 This is a 16 bit offset (of which only 15 bits are used) from the 5077 short data area pointer. 5078 5079 -- : BFD_RELOC_V850_ZDA_16_16_OFFSET 5080 This is a 16 bit offset from the zero data area pointer. 5081 5082 -- : BFD_RELOC_V850_ZDA_15_16_OFFSET 5083 This is a 16 bit offset (of which only 15 bits are used) from the 5084 zero data area pointer. 5085 5086 -- : BFD_RELOC_V850_TDA_6_8_OFFSET 5087 This is an 8 bit offset (of which only 6 bits are used) from the 5088 tiny data area pointer. 5089 5090 -- : BFD_RELOC_V850_TDA_7_8_OFFSET 5091 This is an 8bit offset (of which only 7 bits are used) from the 5092 tiny data area pointer. 5093 5094 -- : BFD_RELOC_V850_TDA_7_7_OFFSET 5095 This is a 7 bit offset from the tiny data area pointer. 5096 5097 -- : BFD_RELOC_V850_TDA_16_16_OFFSET 5098 This is a 16 bit offset from the tiny data area pointer. 5099 5100 -- : BFD_RELOC_V850_TDA_4_5_OFFSET 5101 This is a 5 bit offset (of which only 4 bits are used) from the 5102 tiny data area pointer. 5103 5104 -- : BFD_RELOC_V850_TDA_4_4_OFFSET 5105 This is a 4 bit offset from the tiny data area pointer. 5106 5107 -- : BFD_RELOC_V850_SDA_16_16_SPLIT_OFFSET 5108 This is a 16 bit offset from the short data area pointer, with the 5109 bits placed non-contiguously in the instruction. 5110 5111 -- : BFD_RELOC_V850_ZDA_16_16_SPLIT_OFFSET 5112 This is a 16 bit offset from the zero data area pointer, with the 5113 bits placed non-contiguously in the instruction. 5114 5115 -- : BFD_RELOC_V850_CALLT_6_7_OFFSET 5116 This is a 6 bit offset from the call table base pointer. 5117 5118 -- : BFD_RELOC_V850_CALLT_16_16_OFFSET 5119 This is a 16 bit offset from the call table base pointer. 5120 5121 -- : BFD_RELOC_V850_LONGCALL 5122 Used for relaxing indirect function calls. 5123 5124 -- : BFD_RELOC_V850_LONGJUMP 5125 Used for relaxing indirect jumps. 5126 5127 -- : BFD_RELOC_V850_ALIGN 5128 Used to maintain alignment whilst relaxing. 5129 5130 -- : BFD_RELOC_V850_LO16_SPLIT_OFFSET 5131 This is a variation of BFD_RELOC_LO16 that can be used in v850e 5132 ld.bu instructions. 5133 5134 -- : BFD_RELOC_V850_16_PCREL 5135 This is a 16-bit reloc. 5136 5137 -- : BFD_RELOC_V850_17_PCREL 5138 This is a 17-bit reloc. 5139 5140 -- : BFD_RELOC_V850_23 5141 This is a 23-bit reloc. 5142 5143 -- : BFD_RELOC_V850_32_PCREL 5144 This is a 32-bit reloc. 5145 5146 -- : BFD_RELOC_V850_32_ABS 5147 This is a 32-bit reloc. 5148 5149 -- : BFD_RELOC_V850_16_SPLIT_OFFSET 5150 This is a 16-bit reloc. 5151 5152 -- : BFD_RELOC_V850_16_S1 5153 This is a 16-bit reloc. 5154 5155 -- : BFD_RELOC_V850_LO16_S1 5156 Low 16 bits. 16 bit shifted by 1. 5157 5158 -- : BFD_RELOC_V850_CALLT_15_16_OFFSET 5159 This is a 16 bit offset from the call table base pointer. 5160 5161 -- : BFD_RELOC_V850_32_GOTPCREL 5162 DSO relocations. 5163 5164 -- : BFD_RELOC_V850_16_GOT 5165 DSO relocations. 5166 5167 -- : BFD_RELOC_V850_32_GOT 5168 DSO relocations. 5169 5170 -- : BFD_RELOC_V850_22_PLT_PCREL 5171 DSO relocations. 5172 5173 -- : BFD_RELOC_V850_32_PLT_PCREL 5174 DSO relocations. 5175 5176 -- : BFD_RELOC_V850_COPY 5177 DSO relocations. 5178 5179 -- : BFD_RELOC_V850_GLOB_DAT 5180 DSO relocations. 5181 5182 -- : BFD_RELOC_V850_JMP_SLOT 5183 DSO relocations. 5184 5185 -- : BFD_RELOC_V850_RELATIVE 5186 DSO relocations. 5187 5188 -- : BFD_RELOC_V850_16_GOTOFF 5189 DSO relocations. 5190 5191 -- : BFD_RELOC_V850_32_GOTOFF 5192 DSO relocations. 5193 5194 -- : BFD_RELOC_V850_CODE 5195 start code. 5196 5197 -- : BFD_RELOC_V850_DATA 5198 start data in text. 5199 5200 -- : BFD_RELOC_TIC30_LDP 5201 This is a 8bit DP reloc for the tms320c30, where the most 5202 significant 8 bits of a 24 bit word are placed into the least 5203 significant 8 bits of the opcode. 5204 5205 -- : BFD_RELOC_TIC54X_PARTLS7 5206 This is a 7bit reloc for the tms320c54x, where the least 5207 significant 7 bits of a 16 bit word are placed into the least 5208 significant 7 bits of the opcode. 5209 5210 -- : BFD_RELOC_TIC54X_PARTMS9 5211 This is a 9bit DP reloc for the tms320c54x, where the most 5212 significant 9 bits of a 16 bit word are placed into the least 5213 significant 9 bits of the opcode. 5214 5215 -- : BFD_RELOC_TIC54X_23 5216 This is an extended address 23-bit reloc for the tms320c54x. 5217 5218 -- : BFD_RELOC_TIC54X_16_OF_23 5219 This is a 16-bit reloc for the tms320c54x, where the least 5220 significant 16 bits of a 23-bit extended address are placed into 5221 the opcode. 5222 5223 -- : BFD_RELOC_TIC54X_MS7_OF_23 5224 This is a reloc for the tms320c54x, where the most significant 7 5225 bits of a 23-bit extended address are placed into the opcode. 5226 5227 -- : BFD_RELOC_C6000_PCR_S21 5228 -- : BFD_RELOC_C6000_PCR_S12 5229 -- : BFD_RELOC_C6000_PCR_S10 5230 -- : BFD_RELOC_C6000_PCR_S7 5231 -- : BFD_RELOC_C6000_ABS_S16 5232 -- : BFD_RELOC_C6000_ABS_L16 5233 -- : BFD_RELOC_C6000_ABS_H16 5234 -- : BFD_RELOC_C6000_SBR_U15_B 5235 -- : BFD_RELOC_C6000_SBR_U15_H 5236 -- : BFD_RELOC_C6000_SBR_U15_W 5237 -- : BFD_RELOC_C6000_SBR_S16 5238 -- : BFD_RELOC_C6000_SBR_L16_B 5239 -- : BFD_RELOC_C6000_SBR_L16_H 5240 -- : BFD_RELOC_C6000_SBR_L16_W 5241 -- : BFD_RELOC_C6000_SBR_H16_B 5242 -- : BFD_RELOC_C6000_SBR_H16_H 5243 -- : BFD_RELOC_C6000_SBR_H16_W 5244 -- : BFD_RELOC_C6000_SBR_GOT_U15_W 5245 -- : BFD_RELOC_C6000_SBR_GOT_L16_W 5246 -- : BFD_RELOC_C6000_SBR_GOT_H16_W 5247 -- : BFD_RELOC_C6000_DSBT_INDEX 5248 -- : BFD_RELOC_C6000_PREL31 5249 -- : BFD_RELOC_C6000_COPY 5250 -- : BFD_RELOC_C6000_JUMP_SLOT 5251 -- : BFD_RELOC_C6000_EHTYPE 5252 -- : BFD_RELOC_C6000_PCR_H16 5253 -- : BFD_RELOC_C6000_PCR_L16 5254 -- : BFD_RELOC_C6000_ALIGN 5255 -- : BFD_RELOC_C6000_FPHEAD 5256 -- : BFD_RELOC_C6000_NOCMP 5257 TMS320C6000 relocations. 5258 5259 -- : BFD_RELOC_FR30_48 5260 This is a 48 bit reloc for the FR30 that stores 32 bits. 5261 5262 -- : BFD_RELOC_FR30_20 5263 This is a 32 bit reloc for the FR30 that stores 20 bits split up 5264 into two sections. 5265 5266 -- : BFD_RELOC_FR30_6_IN_4 5267 This is a 16 bit reloc for the FR30 that stores a 6 bit word 5268 offset in 4 bits. 5269 5270 -- : BFD_RELOC_FR30_8_IN_8 5271 This is a 16 bit reloc for the FR30 that stores an 8 bit byte 5272 offset into 8 bits. 5273 5274 -- : BFD_RELOC_FR30_9_IN_8 5275 This is a 16 bit reloc for the FR30 that stores a 9 bit short 5276 offset into 8 bits. 5277 5278 -- : BFD_RELOC_FR30_10_IN_8 5279 This is a 16 bit reloc for the FR30 that stores a 10 bit word 5280 offset into 8 bits. 5281 5282 -- : BFD_RELOC_FR30_9_PCREL 5283 This is a 16 bit reloc for the FR30 that stores a 9 bit pc relative 5284 short offset into 8 bits. 5285 5286 -- : BFD_RELOC_FR30_12_PCREL 5287 This is a 16 bit reloc for the FR30 that stores a 12 bit pc 5288 relative short offset into 11 bits. 5289 5290 -- : BFD_RELOC_MCORE_PCREL_IMM8BY4 5291 -- : BFD_RELOC_MCORE_PCREL_IMM11BY2 5292 -- : BFD_RELOC_MCORE_PCREL_IMM4BY2 5293 -- : BFD_RELOC_MCORE_PCREL_32 5294 -- : BFD_RELOC_MCORE_PCREL_JSR_IMM11BY2 5295 -- : BFD_RELOC_MCORE_RVA 5296 Motorola Mcore relocations. 5297 5298 -- : BFD_RELOC_MEP_8 5299 -- : BFD_RELOC_MEP_16 5300 -- : BFD_RELOC_MEP_32 5301 -- : BFD_RELOC_MEP_PCREL8A2 5302 -- : BFD_RELOC_MEP_PCREL12A2 5303 -- : BFD_RELOC_MEP_PCREL17A2 5304 -- : BFD_RELOC_MEP_PCREL24A2 5305 -- : BFD_RELOC_MEP_PCABS24A2 5306 -- : BFD_RELOC_MEP_LOW16 5307 -- : BFD_RELOC_MEP_HI16U 5308 -- : BFD_RELOC_MEP_HI16S 5309 -- : BFD_RELOC_MEP_GPREL 5310 -- : BFD_RELOC_MEP_TPREL 5311 -- : BFD_RELOC_MEP_TPREL7 5312 -- : BFD_RELOC_MEP_TPREL7A2 5313 -- : BFD_RELOC_MEP_TPREL7A4 5314 -- : BFD_RELOC_MEP_UIMM24 5315 -- : BFD_RELOC_MEP_ADDR24A4 5316 -- : BFD_RELOC_MEP_GNU_VTINHERIT 5317 -- : BFD_RELOC_MEP_GNU_VTENTRY 5318 Toshiba Media Processor Relocations. 5319 5320 -- : BFD_RELOC_METAG_HIADDR16 5321 -- : BFD_RELOC_METAG_LOADDR16 5322 -- : BFD_RELOC_METAG_RELBRANCH 5323 -- : BFD_RELOC_METAG_GETSETOFF 5324 -- : BFD_RELOC_METAG_HIOG 5325 -- : BFD_RELOC_METAG_LOOG 5326 -- : BFD_RELOC_METAG_REL8 5327 -- : BFD_RELOC_METAG_REL16 5328 -- : BFD_RELOC_METAG_HI16_GOTOFF 5329 -- : BFD_RELOC_METAG_LO16_GOTOFF 5330 -- : BFD_RELOC_METAG_GETSET_GOTOFF 5331 -- : BFD_RELOC_METAG_GETSET_GOT 5332 -- : BFD_RELOC_METAG_HI16_GOTPC 5333 -- : BFD_RELOC_METAG_LO16_GOTPC 5334 -- : BFD_RELOC_METAG_HI16_PLT 5335 -- : BFD_RELOC_METAG_LO16_PLT 5336 -- : BFD_RELOC_METAG_RELBRANCH_PLT 5337 -- : BFD_RELOC_METAG_GOTOFF 5338 -- : BFD_RELOC_METAG_PLT 5339 -- : BFD_RELOC_METAG_COPY 5340 -- : BFD_RELOC_METAG_JMP_SLOT 5341 -- : BFD_RELOC_METAG_RELATIVE 5342 -- : BFD_RELOC_METAG_GLOB_DAT 5343 -- : BFD_RELOC_METAG_TLS_GD 5344 -- : BFD_RELOC_METAG_TLS_LDM 5345 -- : BFD_RELOC_METAG_TLS_LDO_HI16 5346 -- : BFD_RELOC_METAG_TLS_LDO_LO16 5347 -- : BFD_RELOC_METAG_TLS_LDO 5348 -- : BFD_RELOC_METAG_TLS_IE 5349 -- : BFD_RELOC_METAG_TLS_IENONPIC 5350 -- : BFD_RELOC_METAG_TLS_IENONPIC_HI16 5351 -- : BFD_RELOC_METAG_TLS_IENONPIC_LO16 5352 -- : BFD_RELOC_METAG_TLS_TPOFF 5353 -- : BFD_RELOC_METAG_TLS_DTPMOD 5354 -- : BFD_RELOC_METAG_TLS_DTPOFF 5355 -- : BFD_RELOC_METAG_TLS_LE 5356 -- : BFD_RELOC_METAG_TLS_LE_HI16 5357 -- : BFD_RELOC_METAG_TLS_LE_LO16 5358 Imagination Technologies Meta relocations. 5359 5360 -- : BFD_RELOC_MMIX_GETA 5361 -- : BFD_RELOC_MMIX_GETA_1 5362 -- : BFD_RELOC_MMIX_GETA_2 5363 -- : BFD_RELOC_MMIX_GETA_3 5364 These are relocations for the GETA instruction. 5365 5366 -- : BFD_RELOC_MMIX_CBRANCH 5367 -- : BFD_RELOC_MMIX_CBRANCH_J 5368 -- : BFD_RELOC_MMIX_CBRANCH_1 5369 -- : BFD_RELOC_MMIX_CBRANCH_2 5370 -- : BFD_RELOC_MMIX_CBRANCH_3 5371 These are relocations for a conditional branch instruction. 5372 5373 -- : BFD_RELOC_MMIX_PUSHJ 5374 -- : BFD_RELOC_MMIX_PUSHJ_1 5375 -- : BFD_RELOC_MMIX_PUSHJ_2 5376 -- : BFD_RELOC_MMIX_PUSHJ_3 5377 -- : BFD_RELOC_MMIX_PUSHJ_STUBBABLE 5378 These are relocations for the PUSHJ instruction. 5379 5380 -- : BFD_RELOC_MMIX_JMP 5381 -- : BFD_RELOC_MMIX_JMP_1 5382 -- : BFD_RELOC_MMIX_JMP_2 5383 -- : BFD_RELOC_MMIX_JMP_3 5384 These are relocations for the JMP instruction. 5385 5386 -- : BFD_RELOC_MMIX_ADDR19 5387 This is a relocation for a relative address as in a GETA 5388 instruction or a branch. 5389 5390 -- : BFD_RELOC_MMIX_ADDR27 5391 This is a relocation for a relative address as in a JMP 5392 instruction. 5393 5394 -- : BFD_RELOC_MMIX_REG_OR_BYTE 5395 This is a relocation for an instruction field that may be a general 5396 register or a value 0..255. 5397 5398 -- : BFD_RELOC_MMIX_REG 5399 This is a relocation for an instruction field that may be a general 5400 register. 5401 5402 -- : BFD_RELOC_MMIX_BASE_PLUS_OFFSET 5403 This is a relocation for two instruction fields holding a register 5404 and an offset, the equivalent of the relocation. 5405 5406 -- : BFD_RELOC_MMIX_LOCAL 5407 This relocation is an assertion that the expression is not 5408 allocated as a global register. It does not modify contents. 5409 5410 -- : BFD_RELOC_AVR_7_PCREL 5411 This is a 16 bit reloc for the AVR that stores 8 bit pc relative 5412 short offset into 7 bits. 5413 5414 -- : BFD_RELOC_AVR_13_PCREL 5415 This is a 16 bit reloc for the AVR that stores 13 bit pc relative 5416 short offset into 12 bits. 5417 5418 -- : BFD_RELOC_AVR_16_PM 5419 This is a 16 bit reloc for the AVR that stores 17 bit value 5420 (usually program memory address) into 16 bits. 5421 5422 -- : BFD_RELOC_AVR_LO8_LDI 5423 This is a 16 bit reloc for the AVR that stores 8 bit value (usually 5424 data memory address) into 8 bit immediate value of LDI insn. 5425 5426 -- : BFD_RELOC_AVR_HI8_LDI 5427 This is a 16 bit reloc for the AVR that stores 8 bit value (high 8 5428 bit of data memory address) into 8 bit immediate value of LDI insn. 5429 5430 -- : BFD_RELOC_AVR_HH8_LDI 5431 This is a 16 bit reloc for the AVR that stores 8 bit value (most 5432 high 8 bit of program memory address) into 8 bit immediate value 5433 of LDI insn. 5434 5435 -- : BFD_RELOC_AVR_MS8_LDI 5436 This is a 16 bit reloc for the AVR that stores 8 bit value (most 5437 high 8 bit of 32 bit value) into 8 bit immediate value of LDI insn. 5438 5439 -- : BFD_RELOC_AVR_LO8_LDI_NEG 5440 This is a 16 bit reloc for the AVR that stores negated 8 bit value 5441 (usually data memory address) into 8 bit immediate value of SUBI 5442 insn. 5443 5444 -- : BFD_RELOC_AVR_HI8_LDI_NEG 5445 This is a 16 bit reloc for the AVR that stores negated 8 bit value 5446 (high 8 bit of data memory address) into 8 bit immediate value of 5447 SUBI insn. 5448 5449 -- : BFD_RELOC_AVR_HH8_LDI_NEG 5450 This is a 16 bit reloc for the AVR that stores negated 8 bit value 5451 (most high 8 bit of program memory address) into 8 bit immediate 5452 value of LDI or SUBI insn. 5453 5454 -- : BFD_RELOC_AVR_MS8_LDI_NEG 5455 This is a 16 bit reloc for the AVR that stores negated 8 bit value 5456 (msb of 32 bit value) into 8 bit immediate value of LDI insn. 5457 5458 -- : BFD_RELOC_AVR_LO8_LDI_PM 5459 This is a 16 bit reloc for the AVR that stores 8 bit value (usually 5460 command address) into 8 bit immediate value of LDI insn. 5461 5462 -- : BFD_RELOC_AVR_LO8_LDI_GS 5463 This is a 16 bit reloc for the AVR that stores 8 bit value 5464 (command address) into 8 bit immediate value of LDI insn. If the 5465 address is beyond the 128k boundary, the linker inserts a jump 5466 stub for this reloc in the lower 128k. 5467 5468 -- : BFD_RELOC_AVR_HI8_LDI_PM 5469 This is a 16 bit reloc for the AVR that stores 8 bit value (high 8 5470 bit of command address) into 8 bit immediate value of LDI insn. 5471 5472 -- : BFD_RELOC_AVR_HI8_LDI_GS 5473 This is a 16 bit reloc for the AVR that stores 8 bit value (high 8 5474 bit of command address) into 8 bit immediate value of LDI insn. 5475 If the address is beyond the 128k boundary, the linker inserts a 5476 jump stub for this reloc below 128k. 5477 5478 -- : BFD_RELOC_AVR_HH8_LDI_PM 5479 This is a 16 bit reloc for the AVR that stores 8 bit value (most 5480 high 8 bit of command address) into 8 bit immediate value of LDI 5481 insn. 5482 5483 -- : BFD_RELOC_AVR_LO8_LDI_PM_NEG 5484 This is a 16 bit reloc for the AVR that stores negated 8 bit value 5485 (usually command address) into 8 bit immediate value of SUBI insn. 5486 5487 -- : BFD_RELOC_AVR_HI8_LDI_PM_NEG 5488 This is a 16 bit reloc for the AVR that stores negated 8 bit value 5489 (high 8 bit of 16 bit command address) into 8 bit immediate value 5490 of SUBI insn. 5491 5492 -- : BFD_RELOC_AVR_HH8_LDI_PM_NEG 5493 This is a 16 bit reloc for the AVR that stores negated 8 bit value 5494 (high 6 bit of 22 bit command address) into 8 bit immediate value 5495 of SUBI insn. 5496 5497 -- : BFD_RELOC_AVR_CALL 5498 This is a 32 bit reloc for the AVR that stores 23 bit value into 5499 22 bits. 5500 5501 -- : BFD_RELOC_AVR_LDI 5502 This is a 16 bit reloc for the AVR that stores all needed bits for 5503 absolute addressing with ldi with overflow check to linktime 5504 5505 -- : BFD_RELOC_AVR_6 5506 This is a 6 bit reloc for the AVR that stores offset for ldd/std 5507 instructions 5508 5509 -- : BFD_RELOC_AVR_6_ADIW 5510 This is a 6 bit reloc for the AVR that stores offset for adiw/sbiw 5511 instructions 5512 5513 -- : BFD_RELOC_AVR_8_LO 5514 This is a 8 bit reloc for the AVR that stores bits 0..7 of a symbol 5515 in .byte lo8(symbol) 5516 5517 -- : BFD_RELOC_AVR_8_HI 5518 This is a 8 bit reloc for the AVR that stores bits 8..15 of a 5519 symbol in .byte hi8(symbol) 5520 5521 -- : BFD_RELOC_AVR_8_HLO 5522 This is a 8 bit reloc for the AVR that stores bits 16..23 of a 5523 symbol in .byte hlo8(symbol) 5524 5525 -- : BFD_RELOC_AVR_DIFF8 5526 -- : BFD_RELOC_AVR_DIFF16 5527 -- : BFD_RELOC_AVR_DIFF32 5528 AVR relocations to mark the difference of two local symbols. 5529 These are only needed to support linker relaxation and can be 5530 ignored when not relaxing. The field is set to the value of the 5531 difference assuming no relaxation. The relocation encodes the 5532 position of the second symbol so the linker can determine whether 5533 to adjust the field value. 5534 5535 -- : BFD_RELOC_AVR_LDS_STS_16 5536 This is a 7 bit reloc for the AVR that stores SRAM address for 5537 16bit lds and sts instructions supported only tiny core. 5538 5539 -- : BFD_RELOC_AVR_PORT6 5540 This is a 6 bit reloc for the AVR that stores an I/O register 5541 number for the IN and OUT instructions 5542 5543 -- : BFD_RELOC_AVR_PORT5 5544 This is a 5 bit reloc for the AVR that stores an I/O register 5545 number for the SBIC, SBIS, SBI and CBI instructions 5546 5547 -- : BFD_RELOC_RL78_NEG8 5548 -- : BFD_RELOC_RL78_NEG16 5549 -- : BFD_RELOC_RL78_NEG24 5550 -- : BFD_RELOC_RL78_NEG32 5551 -- : BFD_RELOC_RL78_16_OP 5552 -- : BFD_RELOC_RL78_24_OP 5553 -- : BFD_RELOC_RL78_32_OP 5554 -- : BFD_RELOC_RL78_8U 5555 -- : BFD_RELOC_RL78_16U 5556 -- : BFD_RELOC_RL78_24U 5557 -- : BFD_RELOC_RL78_DIR3U_PCREL 5558 -- : BFD_RELOC_RL78_DIFF 5559 -- : BFD_RELOC_RL78_GPRELB 5560 -- : BFD_RELOC_RL78_GPRELW 5561 -- : BFD_RELOC_RL78_GPRELL 5562 -- : BFD_RELOC_RL78_SYM 5563 -- : BFD_RELOC_RL78_OP_SUBTRACT 5564 -- : BFD_RELOC_RL78_OP_NEG 5565 -- : BFD_RELOC_RL78_OP_AND 5566 -- : BFD_RELOC_RL78_OP_SHRA 5567 -- : BFD_RELOC_RL78_ABS8 5568 -- : BFD_RELOC_RL78_ABS16 5569 -- : BFD_RELOC_RL78_ABS16_REV 5570 -- : BFD_RELOC_RL78_ABS32 5571 -- : BFD_RELOC_RL78_ABS32_REV 5572 -- : BFD_RELOC_RL78_ABS16U 5573 -- : BFD_RELOC_RL78_ABS16UW 5574 -- : BFD_RELOC_RL78_ABS16UL 5575 -- : BFD_RELOC_RL78_RELAX 5576 -- : BFD_RELOC_RL78_HI16 5577 -- : BFD_RELOC_RL78_HI8 5578 -- : BFD_RELOC_RL78_LO16 5579 -- : BFD_RELOC_RL78_CODE 5580 -- : BFD_RELOC_RL78_SADDR 5581 Renesas RL78 Relocations. 5582 5583 -- : BFD_RELOC_RX_NEG8 5584 -- : BFD_RELOC_RX_NEG16 5585 -- : BFD_RELOC_RX_NEG24 5586 -- : BFD_RELOC_RX_NEG32 5587 -- : BFD_RELOC_RX_16_OP 5588 -- : BFD_RELOC_RX_24_OP 5589 -- : BFD_RELOC_RX_32_OP 5590 -- : BFD_RELOC_RX_8U 5591 -- : BFD_RELOC_RX_16U 5592 -- : BFD_RELOC_RX_24U 5593 -- : BFD_RELOC_RX_DIR3U_PCREL 5594 -- : BFD_RELOC_RX_DIFF 5595 -- : BFD_RELOC_RX_GPRELB 5596 -- : BFD_RELOC_RX_GPRELW 5597 -- : BFD_RELOC_RX_GPRELL 5598 -- : BFD_RELOC_RX_SYM 5599 -- : BFD_RELOC_RX_OP_SUBTRACT 5600 -- : BFD_RELOC_RX_OP_NEG 5601 -- : BFD_RELOC_RX_ABS8 5602 -- : BFD_RELOC_RX_ABS16 5603 -- : BFD_RELOC_RX_ABS16_REV 5604 -- : BFD_RELOC_RX_ABS32 5605 -- : BFD_RELOC_RX_ABS32_REV 5606 -- : BFD_RELOC_RX_ABS16U 5607 -- : BFD_RELOC_RX_ABS16UW 5608 -- : BFD_RELOC_RX_ABS16UL 5609 -- : BFD_RELOC_RX_RELAX 5610 Renesas RX Relocations. 5611 5612 -- : BFD_RELOC_390_12 5613 Direct 12 bit. 5614 5615 -- : BFD_RELOC_390_GOT12 5616 12 bit GOT offset. 5617 5618 -- : BFD_RELOC_390_PLT32 5619 32 bit PC relative PLT address. 5620 5621 -- : BFD_RELOC_390_COPY 5622 Copy symbol at runtime. 5623 5624 -- : BFD_RELOC_390_GLOB_DAT 5625 Create GOT entry. 5626 5627 -- : BFD_RELOC_390_JMP_SLOT 5628 Create PLT entry. 5629 5630 -- : BFD_RELOC_390_RELATIVE 5631 Adjust by program base. 5632 5633 -- : BFD_RELOC_390_GOTPC 5634 32 bit PC relative offset to GOT. 5635 5636 -- : BFD_RELOC_390_GOT16 5637 16 bit GOT offset. 5638 5639 -- : BFD_RELOC_390_PC12DBL 5640 PC relative 12 bit shifted by 1. 5641 5642 -- : BFD_RELOC_390_PLT12DBL 5643 12 bit PC rel. PLT shifted by 1. 5644 5645 -- : BFD_RELOC_390_PC16DBL 5646 PC relative 16 bit shifted by 1. 5647 5648 -- : BFD_RELOC_390_PLT16DBL 5649 16 bit PC rel. PLT shifted by 1. 5650 5651 -- : BFD_RELOC_390_PC24DBL 5652 PC relative 24 bit shifted by 1. 5653 5654 -- : BFD_RELOC_390_PLT24DBL 5655 24 bit PC rel. PLT shifted by 1. 5656 5657 -- : BFD_RELOC_390_PC32DBL 5658 PC relative 32 bit shifted by 1. 5659 5660 -- : BFD_RELOC_390_PLT32DBL 5661 32 bit PC rel. PLT shifted by 1. 5662 5663 -- : BFD_RELOC_390_GOTPCDBL 5664 32 bit PC rel. GOT shifted by 1. 5665 5666 -- : BFD_RELOC_390_GOT64 5667 64 bit GOT offset. 5668 5669 -- : BFD_RELOC_390_PLT64 5670 64 bit PC relative PLT address. 5671 5672 -- : BFD_RELOC_390_GOTENT 5673 32 bit rel. offset to GOT entry. 5674 5675 -- : BFD_RELOC_390_GOTOFF64 5676 64 bit offset to GOT. 5677 5678 -- : BFD_RELOC_390_GOTPLT12 5679 12-bit offset to symbol-entry within GOT, with PLT handling. 5680 5681 -- : BFD_RELOC_390_GOTPLT16 5682 16-bit offset to symbol-entry within GOT, with PLT handling. 5683 5684 -- : BFD_RELOC_390_GOTPLT32 5685 32-bit offset to symbol-entry within GOT, with PLT handling. 5686 5687 -- : BFD_RELOC_390_GOTPLT64 5688 64-bit offset to symbol-entry within GOT, with PLT handling. 5689 5690 -- : BFD_RELOC_390_GOTPLTENT 5691 32-bit rel. offset to symbol-entry within GOT, with PLT handling. 5692 5693 -- : BFD_RELOC_390_PLTOFF16 5694 16-bit rel. offset from the GOT to a PLT entry. 5695 5696 -- : BFD_RELOC_390_PLTOFF32 5697 32-bit rel. offset from the GOT to a PLT entry. 5698 5699 -- : BFD_RELOC_390_PLTOFF64 5700 64-bit rel. offset from the GOT to a PLT entry. 5701 5702 -- : BFD_RELOC_390_TLS_LOAD 5703 -- : BFD_RELOC_390_TLS_GDCALL 5704 -- : BFD_RELOC_390_TLS_LDCALL 5705 -- : BFD_RELOC_390_TLS_GD32 5706 -- : BFD_RELOC_390_TLS_GD64 5707 -- : BFD_RELOC_390_TLS_GOTIE12 5708 -- : BFD_RELOC_390_TLS_GOTIE32 5709 -- : BFD_RELOC_390_TLS_GOTIE64 5710 -- : BFD_RELOC_390_TLS_LDM32 5711 -- : BFD_RELOC_390_TLS_LDM64 5712 -- : BFD_RELOC_390_TLS_IE32 5713 -- : BFD_RELOC_390_TLS_IE64 5714 -- : BFD_RELOC_390_TLS_IEENT 5715 -- : BFD_RELOC_390_TLS_LE32 5716 -- : BFD_RELOC_390_TLS_LE64 5717 -- : BFD_RELOC_390_TLS_LDO32 5718 -- : BFD_RELOC_390_TLS_LDO64 5719 -- : BFD_RELOC_390_TLS_DTPMOD 5720 -- : BFD_RELOC_390_TLS_DTPOFF 5721 -- : BFD_RELOC_390_TLS_TPOFF 5722 s390 tls relocations. 5723 5724 -- : BFD_RELOC_390_20 5725 -- : BFD_RELOC_390_GOT20 5726 -- : BFD_RELOC_390_GOTPLT20 5727 -- : BFD_RELOC_390_TLS_GOTIE20 5728 Long displacement extension. 5729 5730 -- : BFD_RELOC_390_IRELATIVE 5731 STT_GNU_IFUNC relocation. 5732 5733 -- : BFD_RELOC_SCORE_GPREL15 5734 Score relocations Low 16 bit for load/store 5735 5736 -- : BFD_RELOC_SCORE_DUMMY2 5737 -- : BFD_RELOC_SCORE_JMP 5738 This is a 24-bit reloc with the right 1 bit assumed to be 0 5739 5740 -- : BFD_RELOC_SCORE_BRANCH 5741 This is a 19-bit reloc with the right 1 bit assumed to be 0 5742 5743 -- : BFD_RELOC_SCORE_IMM30 5744 This is a 32-bit reloc for 48-bit instructions. 5745 5746 -- : BFD_RELOC_SCORE_IMM32 5747 This is a 32-bit reloc for 48-bit instructions. 5748 5749 -- : BFD_RELOC_SCORE16_JMP 5750 This is a 11-bit reloc with the right 1 bit assumed to be 0 5751 5752 -- : BFD_RELOC_SCORE16_BRANCH 5753 This is a 8-bit reloc with the right 1 bit assumed to be 0 5754 5755 -- : BFD_RELOC_SCORE_BCMP 5756 This is a 9-bit reloc with the right 1 bit assumed to be 0 5757 5758 -- : BFD_RELOC_SCORE_GOT15 5759 -- : BFD_RELOC_SCORE_GOT_LO16 5760 -- : BFD_RELOC_SCORE_CALL15 5761 -- : BFD_RELOC_SCORE_DUMMY_HI16 5762 Undocumented Score relocs 5763 5764 -- : BFD_RELOC_IP2K_FR9 5765 Scenix IP2K - 9-bit register number / data address 5766 5767 -- : BFD_RELOC_IP2K_BANK 5768 Scenix IP2K - 4-bit register/data bank number 5769 5770 -- : BFD_RELOC_IP2K_ADDR16CJP 5771 Scenix IP2K - low 13 bits of instruction word address 5772 5773 -- : BFD_RELOC_IP2K_PAGE3 5774 Scenix IP2K - high 3 bits of instruction word address 5775 5776 -- : BFD_RELOC_IP2K_LO8DATA 5777 -- : BFD_RELOC_IP2K_HI8DATA 5778 -- : BFD_RELOC_IP2K_EX8DATA 5779 Scenix IP2K - ext/low/high 8 bits of data address 5780 5781 -- : BFD_RELOC_IP2K_LO8INSN 5782 -- : BFD_RELOC_IP2K_HI8INSN 5783 Scenix IP2K - low/high 8 bits of instruction word address 5784 5785 -- : BFD_RELOC_IP2K_PC_SKIP 5786 Scenix IP2K - even/odd PC modifier to modify snb pcl.0 5787 5788 -- : BFD_RELOC_IP2K_TEXT 5789 Scenix IP2K - 16 bit word address in text section. 5790 5791 -- : BFD_RELOC_IP2K_FR_OFFSET 5792 Scenix IP2K - 7-bit sp or dp offset 5793 5794 -- : BFD_RELOC_VPE4KMATH_DATA 5795 -- : BFD_RELOC_VPE4KMATH_INSN 5796 Scenix VPE4K coprocessor - data/insn-space addressing 5797 5798 -- : BFD_RELOC_VTABLE_INHERIT 5799 -- : BFD_RELOC_VTABLE_ENTRY 5800 These two relocations are used by the linker to determine which of 5801 the entries in a C++ virtual function table are actually used. 5802 When the -gc-sections option is given, the linker will zero out 5803 the entries that are not used, so that the code for those 5804 functions need not be included in the output. 5805 5806 VTABLE_INHERIT is a zero-space relocation used to describe to the 5807 linker the inheritance tree of a C++ virtual function table. The 5808 relocation's symbol should be the parent class' vtable, and the 5809 relocation should be located at the child vtable. 5810 5811 VTABLE_ENTRY is a zero-space relocation that describes the use of a 5812 virtual function table entry. The reloc's symbol should refer to 5813 the table of the class mentioned in the code. Off of that base, 5814 an offset describes the entry that is being used. For Rela hosts, 5815 this offset is stored in the reloc's addend. For Rel hosts, we 5816 are forced to put this offset in the reloc's section offset. 5817 5818 -- : BFD_RELOC_IA64_IMM14 5819 -- : BFD_RELOC_IA64_IMM22 5820 -- : BFD_RELOC_IA64_IMM64 5821 -- : BFD_RELOC_IA64_DIR32MSB 5822 -- : BFD_RELOC_IA64_DIR32LSB 5823 -- : BFD_RELOC_IA64_DIR64MSB 5824 -- : BFD_RELOC_IA64_DIR64LSB 5825 -- : BFD_RELOC_IA64_GPREL22 5826 -- : BFD_RELOC_IA64_GPREL64I 5827 -- : BFD_RELOC_IA64_GPREL32MSB 5828 -- : BFD_RELOC_IA64_GPREL32LSB 5829 -- : BFD_RELOC_IA64_GPREL64MSB 5830 -- : BFD_RELOC_IA64_GPREL64LSB 5831 -- : BFD_RELOC_IA64_LTOFF22 5832 -- : BFD_RELOC_IA64_LTOFF64I 5833 -- : BFD_RELOC_IA64_PLTOFF22 5834 -- : BFD_RELOC_IA64_PLTOFF64I 5835 -- : BFD_RELOC_IA64_PLTOFF64MSB 5836 -- : BFD_RELOC_IA64_PLTOFF64LSB 5837 -- : BFD_RELOC_IA64_FPTR64I 5838 -- : BFD_RELOC_IA64_FPTR32MSB 5839 -- : BFD_RELOC_IA64_FPTR32LSB 5840 -- : BFD_RELOC_IA64_FPTR64MSB 5841 -- : BFD_RELOC_IA64_FPTR64LSB 5842 -- : BFD_RELOC_IA64_PCREL21B 5843 -- : BFD_RELOC_IA64_PCREL21BI 5844 -- : BFD_RELOC_IA64_PCREL21M 5845 -- : BFD_RELOC_IA64_PCREL21F 5846 -- : BFD_RELOC_IA64_PCREL22 5847 -- : BFD_RELOC_IA64_PCREL60B 5848 -- : BFD_RELOC_IA64_PCREL64I 5849 -- : BFD_RELOC_IA64_PCREL32MSB 5850 -- : BFD_RELOC_IA64_PCREL32LSB 5851 -- : BFD_RELOC_IA64_PCREL64MSB 5852 -- : BFD_RELOC_IA64_PCREL64LSB 5853 -- : BFD_RELOC_IA64_LTOFF_FPTR22 5854 -- : BFD_RELOC_IA64_LTOFF_FPTR64I 5855 -- : BFD_RELOC_IA64_LTOFF_FPTR32MSB 5856 -- : BFD_RELOC_IA64_LTOFF_FPTR32LSB 5857 -- : BFD_RELOC_IA64_LTOFF_FPTR64MSB 5858 -- : BFD_RELOC_IA64_LTOFF_FPTR64LSB 5859 -- : BFD_RELOC_IA64_SEGREL32MSB 5860 -- : BFD_RELOC_IA64_SEGREL32LSB 5861 -- : BFD_RELOC_IA64_SEGREL64MSB 5862 -- : BFD_RELOC_IA64_SEGREL64LSB 5863 -- : BFD_RELOC_IA64_SECREL32MSB 5864 -- : BFD_RELOC_IA64_SECREL32LSB 5865 -- : BFD_RELOC_IA64_SECREL64MSB 5866 -- : BFD_RELOC_IA64_SECREL64LSB 5867 -- : BFD_RELOC_IA64_REL32MSB 5868 -- : BFD_RELOC_IA64_REL32LSB 5869 -- : BFD_RELOC_IA64_REL64MSB 5870 -- : BFD_RELOC_IA64_REL64LSB 5871 -- : BFD_RELOC_IA64_LTV32MSB 5872 -- : BFD_RELOC_IA64_LTV32LSB 5873 -- : BFD_RELOC_IA64_LTV64MSB 5874 -- : BFD_RELOC_IA64_LTV64LSB 5875 -- : BFD_RELOC_IA64_IPLTMSB 5876 -- : BFD_RELOC_IA64_IPLTLSB 5877 -- : BFD_RELOC_IA64_COPY 5878 -- : BFD_RELOC_IA64_LTOFF22X 5879 -- : BFD_RELOC_IA64_LDXMOV 5880 -- : BFD_RELOC_IA64_TPREL14 5881 -- : BFD_RELOC_IA64_TPREL22 5882 -- : BFD_RELOC_IA64_TPREL64I 5883 -- : BFD_RELOC_IA64_TPREL64MSB 5884 -- : BFD_RELOC_IA64_TPREL64LSB 5885 -- : BFD_RELOC_IA64_LTOFF_TPREL22 5886 -- : BFD_RELOC_IA64_DTPMOD64MSB 5887 -- : BFD_RELOC_IA64_DTPMOD64LSB 5888 -- : BFD_RELOC_IA64_LTOFF_DTPMOD22 5889 -- : BFD_RELOC_IA64_DTPREL14 5890 -- : BFD_RELOC_IA64_DTPREL22 5891 -- : BFD_RELOC_IA64_DTPREL64I 5892 -- : BFD_RELOC_IA64_DTPREL32MSB 5893 -- : BFD_RELOC_IA64_DTPREL32LSB 5894 -- : BFD_RELOC_IA64_DTPREL64MSB 5895 -- : BFD_RELOC_IA64_DTPREL64LSB 5896 -- : BFD_RELOC_IA64_LTOFF_DTPREL22 5897 Intel IA64 Relocations. 5898 5899 -- : BFD_RELOC_M68HC11_HI8 5900 Motorola 68HC11 reloc. This is the 8 bit high part of an absolute 5901 address. 5902 5903 -- : BFD_RELOC_M68HC11_LO8 5904 Motorola 68HC11 reloc. This is the 8 bit low part of an absolute 5905 address. 5906 5907 -- : BFD_RELOC_M68HC11_3B 5908 Motorola 68HC11 reloc. This is the 3 bit of a value. 5909 5910 -- : BFD_RELOC_M68HC11_RL_JUMP 5911 Motorola 68HC11 reloc. This reloc marks the beginning of a 5912 jump/call instruction. It is used for linker relaxation to 5913 correctly identify beginning of instruction and change some 5914 branches to use PC-relative addressing mode. 5915 5916 -- : BFD_RELOC_M68HC11_RL_GROUP 5917 Motorola 68HC11 reloc. This reloc marks a group of several 5918 instructions that gcc generates and for which the linker 5919 relaxation pass can modify and/or remove some of them. 5920 5921 -- : BFD_RELOC_M68HC11_LO16 5922 Motorola 68HC11 reloc. This is the 16-bit lower part of an 5923 address. It is used for 'call' instruction to specify the symbol 5924 address without any special transformation (due to memory bank 5925 window). 5926 5927 -- : BFD_RELOC_M68HC11_PAGE 5928 Motorola 68HC11 reloc. This is a 8-bit reloc that specifies the 5929 page number of an address. It is used by 'call' instruction to 5930 specify the page number of the symbol. 5931 5932 -- : BFD_RELOC_M68HC11_24 5933 Motorola 68HC11 reloc. This is a 24-bit reloc that represents the 5934 address with a 16-bit value and a 8-bit page number. The symbol 5935 address is transformed to follow the 16K memory bank of 68HC12 5936 (seen as mapped in the window). 5937 5938 -- : BFD_RELOC_M68HC12_5B 5939 Motorola 68HC12 reloc. This is the 5 bits of a value. 5940 5941 -- : BFD_RELOC_XGATE_RL_JUMP 5942 Freescale XGATE reloc. This reloc marks the beginning of a 5943 bra/jal instruction. 5944 5945 -- : BFD_RELOC_XGATE_RL_GROUP 5946 Freescale XGATE reloc. This reloc marks a group of several 5947 instructions that gcc generates and for which the linker 5948 relaxation pass can modify and/or remove some of them. 5949 5950 -- : BFD_RELOC_XGATE_LO16 5951 Freescale XGATE reloc. This is the 16-bit lower part of an 5952 address. It is used for the '16-bit' instructions. 5953 5954 -- : BFD_RELOC_XGATE_GPAGE 5955 Freescale XGATE reloc. 5956 5957 -- : BFD_RELOC_XGATE_24 5958 Freescale XGATE reloc. 5959 5960 -- : BFD_RELOC_XGATE_PCREL_9 5961 Freescale XGATE reloc. This is a 9-bit pc-relative reloc. 5962 5963 -- : BFD_RELOC_XGATE_PCREL_10 5964 Freescale XGATE reloc. This is a 10-bit pc-relative reloc. 5965 5966 -- : BFD_RELOC_XGATE_IMM8_LO 5967 Freescale XGATE reloc. This is the 16-bit lower part of an 5968 address. It is used for the '16-bit' instructions. 5969 5970 -- : BFD_RELOC_XGATE_IMM8_HI 5971 Freescale XGATE reloc. This is the 16-bit higher part of an 5972 address. It is used for the '16-bit' instructions. 5973 5974 -- : BFD_RELOC_XGATE_IMM3 5975 Freescale XGATE reloc. This is a 3-bit pc-relative reloc. 5976 5977 -- : BFD_RELOC_XGATE_IMM4 5978 Freescale XGATE reloc. This is a 4-bit pc-relative reloc. 5979 5980 -- : BFD_RELOC_XGATE_IMM5 5981 Freescale XGATE reloc. This is a 5-bit pc-relative reloc. 5982 5983 -- : BFD_RELOC_M68HC12_9B 5984 Motorola 68HC12 reloc. This is the 9 bits of a value. 5985 5986 -- : BFD_RELOC_M68HC12_16B 5987 Motorola 68HC12 reloc. This is the 16 bits of a value. 5988 5989 -- : BFD_RELOC_M68HC12_9_PCREL 5990 Motorola 68HC12/XGATE reloc. This is a PCREL9 branch. 5991 5992 -- : BFD_RELOC_M68HC12_10_PCREL 5993 Motorola 68HC12/XGATE reloc. This is a PCREL10 branch. 5994 5995 -- : BFD_RELOC_M68HC12_LO8XG 5996 Motorola 68HC12/XGATE reloc. This is the 8 bit low part of an 5997 absolute address and immediately precedes a matching HI8XG part. 5998 5999 -- : BFD_RELOC_M68HC12_HI8XG 6000 Motorola 68HC12/XGATE reloc. This is the 8 bit high part of an 6001 absolute address and immediately follows a matching LO8XG part. 6002 6003 -- : BFD_RELOC_16C_NUM08 6004 -- : BFD_RELOC_16C_NUM08_C 6005 -- : BFD_RELOC_16C_NUM16 6006 -- : BFD_RELOC_16C_NUM16_C 6007 -- : BFD_RELOC_16C_NUM32 6008 -- : BFD_RELOC_16C_NUM32_C 6009 -- : BFD_RELOC_16C_DISP04 6010 -- : BFD_RELOC_16C_DISP04_C 6011 -- : BFD_RELOC_16C_DISP08 6012 -- : BFD_RELOC_16C_DISP08_C 6013 -- : BFD_RELOC_16C_DISP16 6014 -- : BFD_RELOC_16C_DISP16_C 6015 -- : BFD_RELOC_16C_DISP24 6016 -- : BFD_RELOC_16C_DISP24_C 6017 -- : BFD_RELOC_16C_DISP24a 6018 -- : BFD_RELOC_16C_DISP24a_C 6019 -- : BFD_RELOC_16C_REG04 6020 -- : BFD_RELOC_16C_REG04_C 6021 -- : BFD_RELOC_16C_REG04a 6022 -- : BFD_RELOC_16C_REG04a_C 6023 -- : BFD_RELOC_16C_REG14 6024 -- : BFD_RELOC_16C_REG14_C 6025 -- : BFD_RELOC_16C_REG16 6026 -- : BFD_RELOC_16C_REG16_C 6027 -- : BFD_RELOC_16C_REG20 6028 -- : BFD_RELOC_16C_REG20_C 6029 -- : BFD_RELOC_16C_ABS20 6030 -- : BFD_RELOC_16C_ABS20_C 6031 -- : BFD_RELOC_16C_ABS24 6032 -- : BFD_RELOC_16C_ABS24_C 6033 -- : BFD_RELOC_16C_IMM04 6034 -- : BFD_RELOC_16C_IMM04_C 6035 -- : BFD_RELOC_16C_IMM16 6036 -- : BFD_RELOC_16C_IMM16_C 6037 -- : BFD_RELOC_16C_IMM20 6038 -- : BFD_RELOC_16C_IMM20_C 6039 -- : BFD_RELOC_16C_IMM24 6040 -- : BFD_RELOC_16C_IMM24_C 6041 -- : BFD_RELOC_16C_IMM32 6042 -- : BFD_RELOC_16C_IMM32_C 6043 NS CR16C Relocations. 6044 6045 -- : BFD_RELOC_CR16_NUM8 6046 -- : BFD_RELOC_CR16_NUM16 6047 -- : BFD_RELOC_CR16_NUM32 6048 -- : BFD_RELOC_CR16_NUM32a 6049 -- : BFD_RELOC_CR16_REGREL0 6050 -- : BFD_RELOC_CR16_REGREL4 6051 -- : BFD_RELOC_CR16_REGREL4a 6052 -- : BFD_RELOC_CR16_REGREL14 6053 -- : BFD_RELOC_CR16_REGREL14a 6054 -- : BFD_RELOC_CR16_REGREL16 6055 -- : BFD_RELOC_CR16_REGREL20 6056 -- : BFD_RELOC_CR16_REGREL20a 6057 -- : BFD_RELOC_CR16_ABS20 6058 -- : BFD_RELOC_CR16_ABS24 6059 -- : BFD_RELOC_CR16_IMM4 6060 -- : BFD_RELOC_CR16_IMM8 6061 -- : BFD_RELOC_CR16_IMM16 6062 -- : BFD_RELOC_CR16_IMM20 6063 -- : BFD_RELOC_CR16_IMM24 6064 -- : BFD_RELOC_CR16_IMM32 6065 -- : BFD_RELOC_CR16_IMM32a 6066 -- : BFD_RELOC_CR16_DISP4 6067 -- : BFD_RELOC_CR16_DISP8 6068 -- : BFD_RELOC_CR16_DISP16 6069 -- : BFD_RELOC_CR16_DISP20 6070 -- : BFD_RELOC_CR16_DISP24 6071 -- : BFD_RELOC_CR16_DISP24a 6072 -- : BFD_RELOC_CR16_SWITCH8 6073 -- : BFD_RELOC_CR16_SWITCH16 6074 -- : BFD_RELOC_CR16_SWITCH32 6075 -- : BFD_RELOC_CR16_GOT_REGREL20 6076 -- : BFD_RELOC_CR16_GOTC_REGREL20 6077 -- : BFD_RELOC_CR16_GLOB_DAT 6078 NS CR16 Relocations. 6079 6080 -- : BFD_RELOC_CRX_REL4 6081 -- : BFD_RELOC_CRX_REL8 6082 -- : BFD_RELOC_CRX_REL8_CMP 6083 -- : BFD_RELOC_CRX_REL16 6084 -- : BFD_RELOC_CRX_REL24 6085 -- : BFD_RELOC_CRX_REL32 6086 -- : BFD_RELOC_CRX_REGREL12 6087 -- : BFD_RELOC_CRX_REGREL22 6088 -- : BFD_RELOC_CRX_REGREL28 6089 -- : BFD_RELOC_CRX_REGREL32 6090 -- : BFD_RELOC_CRX_ABS16 6091 -- : BFD_RELOC_CRX_ABS32 6092 -- : BFD_RELOC_CRX_NUM8 6093 -- : BFD_RELOC_CRX_NUM16 6094 -- : BFD_RELOC_CRX_NUM32 6095 -- : BFD_RELOC_CRX_IMM16 6096 -- : BFD_RELOC_CRX_IMM32 6097 -- : BFD_RELOC_CRX_SWITCH8 6098 -- : BFD_RELOC_CRX_SWITCH16 6099 -- : BFD_RELOC_CRX_SWITCH32 6100 NS CRX Relocations. 6101 6102 -- : BFD_RELOC_CRIS_BDISP8 6103 -- : BFD_RELOC_CRIS_UNSIGNED_5 6104 -- : BFD_RELOC_CRIS_SIGNED_6 6105 -- : BFD_RELOC_CRIS_UNSIGNED_6 6106 -- : BFD_RELOC_CRIS_SIGNED_8 6107 -- : BFD_RELOC_CRIS_UNSIGNED_8 6108 -- : BFD_RELOC_CRIS_SIGNED_16 6109 -- : BFD_RELOC_CRIS_UNSIGNED_16 6110 -- : BFD_RELOC_CRIS_LAPCQ_OFFSET 6111 -- : BFD_RELOC_CRIS_UNSIGNED_4 6112 These relocs are only used within the CRIS assembler. They are not 6113 (at present) written to any object files. 6114 6115 -- : BFD_RELOC_CRIS_COPY 6116 -- : BFD_RELOC_CRIS_GLOB_DAT 6117 -- : BFD_RELOC_CRIS_JUMP_SLOT 6118 -- : BFD_RELOC_CRIS_RELATIVE 6119 Relocs used in ELF shared libraries for CRIS. 6120 6121 -- : BFD_RELOC_CRIS_32_GOT 6122 32-bit offset to symbol-entry within GOT. 6123 6124 -- : BFD_RELOC_CRIS_16_GOT 6125 16-bit offset to symbol-entry within GOT. 6126 6127 -- : BFD_RELOC_CRIS_32_GOTPLT 6128 32-bit offset to symbol-entry within GOT, with PLT handling. 6129 6130 -- : BFD_RELOC_CRIS_16_GOTPLT 6131 16-bit offset to symbol-entry within GOT, with PLT handling. 6132 6133 -- : BFD_RELOC_CRIS_32_GOTREL 6134 32-bit offset to symbol, relative to GOT. 6135 6136 -- : BFD_RELOC_CRIS_32_PLT_GOTREL 6137 32-bit offset to symbol with PLT entry, relative to GOT. 6138 6139 -- : BFD_RELOC_CRIS_32_PLT_PCREL 6140 32-bit offset to symbol with PLT entry, relative to this 6141 relocation. 6142 6143 -- : BFD_RELOC_CRIS_32_GOT_GD 6144 -- : BFD_RELOC_CRIS_16_GOT_GD 6145 -- : BFD_RELOC_CRIS_32_GD 6146 -- : BFD_RELOC_CRIS_DTP 6147 -- : BFD_RELOC_CRIS_32_DTPREL 6148 -- : BFD_RELOC_CRIS_16_DTPREL 6149 -- : BFD_RELOC_CRIS_32_GOT_TPREL 6150 -- : BFD_RELOC_CRIS_16_GOT_TPREL 6151 -- : BFD_RELOC_CRIS_32_TPREL 6152 -- : BFD_RELOC_CRIS_16_TPREL 6153 -- : BFD_RELOC_CRIS_DTPMOD 6154 -- : BFD_RELOC_CRIS_32_IE 6155 Relocs used in TLS code for CRIS. 6156 6157 -- : BFD_RELOC_860_COPY 6158 -- : BFD_RELOC_860_GLOB_DAT 6159 -- : BFD_RELOC_860_JUMP_SLOT 6160 -- : BFD_RELOC_860_RELATIVE 6161 -- : BFD_RELOC_860_PC26 6162 -- : BFD_RELOC_860_PLT26 6163 -- : BFD_RELOC_860_PC16 6164 -- : BFD_RELOC_860_LOW0 6165 -- : BFD_RELOC_860_SPLIT0 6166 -- : BFD_RELOC_860_LOW1 6167 -- : BFD_RELOC_860_SPLIT1 6168 -- : BFD_RELOC_860_LOW2 6169 -- : BFD_RELOC_860_SPLIT2 6170 -- : BFD_RELOC_860_LOW3 6171 -- : BFD_RELOC_860_LOGOT0 6172 -- : BFD_RELOC_860_SPGOT0 6173 -- : BFD_RELOC_860_LOGOT1 6174 -- : BFD_RELOC_860_SPGOT1 6175 -- : BFD_RELOC_860_LOGOTOFF0 6176 -- : BFD_RELOC_860_SPGOTOFF0 6177 -- : BFD_RELOC_860_LOGOTOFF1 6178 -- : BFD_RELOC_860_SPGOTOFF1 6179 -- : BFD_RELOC_860_LOGOTOFF2 6180 -- : BFD_RELOC_860_LOGOTOFF3 6181 -- : BFD_RELOC_860_LOPC 6182 -- : BFD_RELOC_860_HIGHADJ 6183 -- : BFD_RELOC_860_HAGOT 6184 -- : BFD_RELOC_860_HAGOTOFF 6185 -- : BFD_RELOC_860_HAPC 6186 -- : BFD_RELOC_860_HIGH 6187 -- : BFD_RELOC_860_HIGOT 6188 -- : BFD_RELOC_860_HIGOTOFF 6189 Intel i860 Relocations. 6190 6191 -- : BFD_RELOC_OR1K_REL_26 6192 -- : BFD_RELOC_OR1K_GOTPC_HI16 6193 -- : BFD_RELOC_OR1K_GOTPC_LO16 6194 -- : BFD_RELOC_OR1K_GOT16 6195 -- : BFD_RELOC_OR1K_PLT26 6196 -- : BFD_RELOC_OR1K_GOTOFF_HI16 6197 -- : BFD_RELOC_OR1K_GOTOFF_LO16 6198 -- : BFD_RELOC_OR1K_COPY 6199 -- : BFD_RELOC_OR1K_GLOB_DAT 6200 -- : BFD_RELOC_OR1K_JMP_SLOT 6201 -- : BFD_RELOC_OR1K_RELATIVE 6202 -- : BFD_RELOC_OR1K_TLS_GD_HI16 6203 -- : BFD_RELOC_OR1K_TLS_GD_LO16 6204 -- : BFD_RELOC_OR1K_TLS_LDM_HI16 6205 -- : BFD_RELOC_OR1K_TLS_LDM_LO16 6206 -- : BFD_RELOC_OR1K_TLS_LDO_HI16 6207 -- : BFD_RELOC_OR1K_TLS_LDO_LO16 6208 -- : BFD_RELOC_OR1K_TLS_IE_HI16 6209 -- : BFD_RELOC_OR1K_TLS_IE_LO16 6210 -- : BFD_RELOC_OR1K_TLS_LE_HI16 6211 -- : BFD_RELOC_OR1K_TLS_LE_LO16 6212 -- : BFD_RELOC_OR1K_TLS_TPOFF 6213 -- : BFD_RELOC_OR1K_TLS_DTPOFF 6214 -- : BFD_RELOC_OR1K_TLS_DTPMOD 6215 OpenRISC 1000 Relocations. 6216 6217 -- : BFD_RELOC_H8_DIR16A8 6218 -- : BFD_RELOC_H8_DIR16R8 6219 -- : BFD_RELOC_H8_DIR24A8 6220 -- : BFD_RELOC_H8_DIR24R8 6221 -- : BFD_RELOC_H8_DIR32A16 6222 -- : BFD_RELOC_H8_DISP32A16 6223 H8 elf Relocations. 6224 6225 -- : BFD_RELOC_XSTORMY16_REL_12 6226 -- : BFD_RELOC_XSTORMY16_12 6227 -- : BFD_RELOC_XSTORMY16_24 6228 -- : BFD_RELOC_XSTORMY16_FPTR16 6229 Sony Xstormy16 Relocations. 6230 6231 -- : BFD_RELOC_RELC 6232 Self-describing complex relocations. 6233 6234 -- : BFD_RELOC_XC16X_PAG 6235 -- : BFD_RELOC_XC16X_POF 6236 -- : BFD_RELOC_XC16X_SEG 6237 -- : BFD_RELOC_XC16X_SOF 6238 Infineon Relocations. 6239 6240 -- : BFD_RELOC_VAX_GLOB_DAT 6241 -- : BFD_RELOC_VAX_JMP_SLOT 6242 -- : BFD_RELOC_VAX_RELATIVE 6243 Relocations used by VAX ELF. 6244 6245 -- : BFD_RELOC_MT_PC16 6246 Morpho MT - 16 bit immediate relocation. 6247 6248 -- : BFD_RELOC_MT_HI16 6249 Morpho MT - Hi 16 bits of an address. 6250 6251 -- : BFD_RELOC_MT_LO16 6252 Morpho MT - Low 16 bits of an address. 6253 6254 -- : BFD_RELOC_MT_GNU_VTINHERIT 6255 Morpho MT - Used to tell the linker which vtable entries are used. 6256 6257 -- : BFD_RELOC_MT_GNU_VTENTRY 6258 Morpho MT - Used to tell the linker which vtable entries are used. 6259 6260 -- : BFD_RELOC_MT_PCINSN8 6261 Morpho MT - 8 bit immediate relocation. 6262 6263 -- : BFD_RELOC_MSP430_10_PCREL 6264 -- : BFD_RELOC_MSP430_16_PCREL 6265 -- : BFD_RELOC_MSP430_16 6266 -- : BFD_RELOC_MSP430_16_PCREL_BYTE 6267 -- : BFD_RELOC_MSP430_16_BYTE 6268 -- : BFD_RELOC_MSP430_2X_PCREL 6269 -- : BFD_RELOC_MSP430_RL_PCREL 6270 -- : BFD_RELOC_MSP430_ABS8 6271 -- : BFD_RELOC_MSP430X_PCR20_EXT_SRC 6272 -- : BFD_RELOC_MSP430X_PCR20_EXT_DST 6273 -- : BFD_RELOC_MSP430X_PCR20_EXT_ODST 6274 -- : BFD_RELOC_MSP430X_ABS20_EXT_SRC 6275 -- : BFD_RELOC_MSP430X_ABS20_EXT_DST 6276 -- : BFD_RELOC_MSP430X_ABS20_EXT_ODST 6277 -- : BFD_RELOC_MSP430X_ABS20_ADR_SRC 6278 -- : BFD_RELOC_MSP430X_ABS20_ADR_DST 6279 -- : BFD_RELOC_MSP430X_PCR16 6280 -- : BFD_RELOC_MSP430X_PCR20_CALL 6281 -- : BFD_RELOC_MSP430X_ABS16 6282 -- : BFD_RELOC_MSP430_ABS_HI16 6283 -- : BFD_RELOC_MSP430_PREL31 6284 -- : BFD_RELOC_MSP430_SYM_DIFF 6285 msp430 specific relocation codes 6286 6287 -- : BFD_RELOC_NIOS2_S16 6288 -- : BFD_RELOC_NIOS2_U16 6289 -- : BFD_RELOC_NIOS2_CALL26 6290 -- : BFD_RELOC_NIOS2_IMM5 6291 -- : BFD_RELOC_NIOS2_CACHE_OPX 6292 -- : BFD_RELOC_NIOS2_IMM6 6293 -- : BFD_RELOC_NIOS2_IMM8 6294 -- : BFD_RELOC_NIOS2_HI16 6295 -- : BFD_RELOC_NIOS2_LO16 6296 -- : BFD_RELOC_NIOS2_HIADJ16 6297 -- : BFD_RELOC_NIOS2_GPREL 6298 -- : BFD_RELOC_NIOS2_UJMP 6299 -- : BFD_RELOC_NIOS2_CJMP 6300 -- : BFD_RELOC_NIOS2_CALLR 6301 -- : BFD_RELOC_NIOS2_ALIGN 6302 -- : BFD_RELOC_NIOS2_GOT16 6303 -- : BFD_RELOC_NIOS2_CALL16 6304 -- : BFD_RELOC_NIOS2_GOTOFF_LO 6305 -- : BFD_RELOC_NIOS2_GOTOFF_HA 6306 -- : BFD_RELOC_NIOS2_PCREL_LO 6307 -- : BFD_RELOC_NIOS2_PCREL_HA 6308 -- : BFD_RELOC_NIOS2_TLS_GD16 6309 -- : BFD_RELOC_NIOS2_TLS_LDM16 6310 -- : BFD_RELOC_NIOS2_TLS_LDO16 6311 -- : BFD_RELOC_NIOS2_TLS_IE16 6312 -- : BFD_RELOC_NIOS2_TLS_LE16 6313 -- : BFD_RELOC_NIOS2_TLS_DTPMOD 6314 -- : BFD_RELOC_NIOS2_TLS_DTPREL 6315 -- : BFD_RELOC_NIOS2_TLS_TPREL 6316 -- : BFD_RELOC_NIOS2_COPY 6317 -- : BFD_RELOC_NIOS2_GLOB_DAT 6318 -- : BFD_RELOC_NIOS2_JUMP_SLOT 6319 -- : BFD_RELOC_NIOS2_RELATIVE 6320 -- : BFD_RELOC_NIOS2_GOTOFF 6321 -- : BFD_RELOC_NIOS2_CALL26_NOAT 6322 -- : BFD_RELOC_NIOS2_GOT_LO 6323 -- : BFD_RELOC_NIOS2_GOT_HA 6324 -- : BFD_RELOC_NIOS2_CALL_LO 6325 -- : BFD_RELOC_NIOS2_CALL_HA 6326 -- : BFD_RELOC_NIOS2_R2_S12 6327 -- : BFD_RELOC_NIOS2_R2_I10_1_PCREL 6328 -- : BFD_RELOC_NIOS2_R2_T1I7_1_PCREL 6329 -- : BFD_RELOC_NIOS2_R2_T1I7_2 6330 -- : BFD_RELOC_NIOS2_R2_T2I4 6331 -- : BFD_RELOC_NIOS2_R2_T2I4_1 6332 -- : BFD_RELOC_NIOS2_R2_T2I4_2 6333 -- : BFD_RELOC_NIOS2_R2_X1I7_2 6334 -- : BFD_RELOC_NIOS2_R2_X2L5 6335 -- : BFD_RELOC_NIOS2_R2_F1I5_2 6336 -- : BFD_RELOC_NIOS2_R2_L5I4X1 6337 -- : BFD_RELOC_NIOS2_R2_T1X1I6 6338 -- : BFD_RELOC_NIOS2_R2_T1X1I6_2 6339 Relocations used by the Altera Nios II core. 6340 6341 -- : BFD_RELOC_IQ2000_OFFSET_16 6342 -- : BFD_RELOC_IQ2000_OFFSET_21 6343 -- : BFD_RELOC_IQ2000_UHI16 6344 IQ2000 Relocations. 6345 6346 -- : BFD_RELOC_XTENSA_RTLD 6347 Special Xtensa relocation used only by PLT entries in ELF shared 6348 objects to indicate that the runtime linker should set the value 6349 to one of its own internal functions or data structures. 6350 6351 -- : BFD_RELOC_XTENSA_GLOB_DAT 6352 -- : BFD_RELOC_XTENSA_JMP_SLOT 6353 -- : BFD_RELOC_XTENSA_RELATIVE 6354 Xtensa relocations for ELF shared objects. 6355 6356 -- : BFD_RELOC_XTENSA_PLT 6357 Xtensa relocation used in ELF object files for symbols that may 6358 require PLT entries. Otherwise, this is just a generic 32-bit 6359 relocation. 6360 6361 -- : BFD_RELOC_XTENSA_DIFF8 6362 -- : BFD_RELOC_XTENSA_DIFF16 6363 -- : BFD_RELOC_XTENSA_DIFF32 6364 Xtensa relocations to mark the difference of two local symbols. 6365 These are only needed to support linker relaxation and can be 6366 ignored when not relaxing. The field is set to the value of the 6367 difference assuming no relaxation. The relocation encodes the 6368 position of the first symbol so the linker can determine whether 6369 to adjust the field value. 6370 6371 -- : BFD_RELOC_XTENSA_SLOT0_OP 6372 -- : BFD_RELOC_XTENSA_SLOT1_OP 6373 -- : BFD_RELOC_XTENSA_SLOT2_OP 6374 -- : BFD_RELOC_XTENSA_SLOT3_OP 6375 -- : BFD_RELOC_XTENSA_SLOT4_OP 6376 -- : BFD_RELOC_XTENSA_SLOT5_OP 6377 -- : BFD_RELOC_XTENSA_SLOT6_OP 6378 -- : BFD_RELOC_XTENSA_SLOT7_OP 6379 -- : BFD_RELOC_XTENSA_SLOT8_OP 6380 -- : BFD_RELOC_XTENSA_SLOT9_OP 6381 -- : BFD_RELOC_XTENSA_SLOT10_OP 6382 -- : BFD_RELOC_XTENSA_SLOT11_OP 6383 -- : BFD_RELOC_XTENSA_SLOT12_OP 6384 -- : BFD_RELOC_XTENSA_SLOT13_OP 6385 -- : BFD_RELOC_XTENSA_SLOT14_OP 6386 Generic Xtensa relocations for instruction operands. Only the slot 6387 number is encoded in the relocation. The relocation applies to the 6388 last PC-relative immediate operand, or if there are no PC-relative 6389 immediates, to the last immediate operand. 6390 6391 -- : BFD_RELOC_XTENSA_SLOT0_ALT 6392 -- : BFD_RELOC_XTENSA_SLOT1_ALT 6393 -- : BFD_RELOC_XTENSA_SLOT2_ALT 6394 -- : BFD_RELOC_XTENSA_SLOT3_ALT 6395 -- : BFD_RELOC_XTENSA_SLOT4_ALT 6396 -- : BFD_RELOC_XTENSA_SLOT5_ALT 6397 -- : BFD_RELOC_XTENSA_SLOT6_ALT 6398 -- : BFD_RELOC_XTENSA_SLOT7_ALT 6399 -- : BFD_RELOC_XTENSA_SLOT8_ALT 6400 -- : BFD_RELOC_XTENSA_SLOT9_ALT 6401 -- : BFD_RELOC_XTENSA_SLOT10_ALT 6402 -- : BFD_RELOC_XTENSA_SLOT11_ALT 6403 -- : BFD_RELOC_XTENSA_SLOT12_ALT 6404 -- : BFD_RELOC_XTENSA_SLOT13_ALT 6405 -- : BFD_RELOC_XTENSA_SLOT14_ALT 6406 Alternate Xtensa relocations. Only the slot is encoded in the 6407 relocation. The meaning of these relocations is opcode-specific. 6408 6409 -- : BFD_RELOC_XTENSA_OP0 6410 -- : BFD_RELOC_XTENSA_OP1 6411 -- : BFD_RELOC_XTENSA_OP2 6412 Xtensa relocations for backward compatibility. These have all been 6413 replaced by BFD_RELOC_XTENSA_SLOT0_OP. 6414 6415 -- : BFD_RELOC_XTENSA_ASM_EXPAND 6416 Xtensa relocation to mark that the assembler expanded the 6417 instructions from an original target. The expansion size is 6418 encoded in the reloc size. 6419 6420 -- : BFD_RELOC_XTENSA_ASM_SIMPLIFY 6421 Xtensa relocation to mark that the linker should simplify 6422 assembler-expanded instructions. This is commonly used internally 6423 by the linker after analysis of a BFD_RELOC_XTENSA_ASM_EXPAND. 6424 6425 -- : BFD_RELOC_XTENSA_TLSDESC_FN 6426 -- : BFD_RELOC_XTENSA_TLSDESC_ARG 6427 -- : BFD_RELOC_XTENSA_TLS_DTPOFF 6428 -- : BFD_RELOC_XTENSA_TLS_TPOFF 6429 -- : BFD_RELOC_XTENSA_TLS_FUNC 6430 -- : BFD_RELOC_XTENSA_TLS_ARG 6431 -- : BFD_RELOC_XTENSA_TLS_CALL 6432 Xtensa TLS relocations. 6433 6434 -- : BFD_RELOC_Z80_DISP8 6435 8 bit signed offset in (ix+d) or (iy+d). 6436 6437 -- : BFD_RELOC_Z8K_DISP7 6438 DJNZ offset. 6439 6440 -- : BFD_RELOC_Z8K_CALLR 6441 CALR offset. 6442 6443 -- : BFD_RELOC_Z8K_IMM4L 6444 4 bit value. 6445 6446 -- : BFD_RELOC_LM32_CALL 6447 -- : BFD_RELOC_LM32_BRANCH 6448 -- : BFD_RELOC_LM32_16_GOT 6449 -- : BFD_RELOC_LM32_GOTOFF_HI16 6450 -- : BFD_RELOC_LM32_GOTOFF_LO16 6451 -- : BFD_RELOC_LM32_COPY 6452 -- : BFD_RELOC_LM32_GLOB_DAT 6453 -- : BFD_RELOC_LM32_JMP_SLOT 6454 -- : BFD_RELOC_LM32_RELATIVE 6455 Lattice Mico32 relocations. 6456 6457 -- : BFD_RELOC_MACH_O_SECTDIFF 6458 Difference between two section addreses. Must be followed by a 6459 BFD_RELOC_MACH_O_PAIR. 6460 6461 -- : BFD_RELOC_MACH_O_LOCAL_SECTDIFF 6462 Like BFD_RELOC_MACH_O_SECTDIFF but with a local symbol. 6463 6464 -- : BFD_RELOC_MACH_O_PAIR 6465 Pair of relocation. Contains the first symbol. 6466 6467 -- : BFD_RELOC_MACH_O_SUBTRACTOR32 6468 Symbol will be substracted. Must be followed by a BFD_RELOC_32. 6469 6470 -- : BFD_RELOC_MACH_O_SUBTRACTOR64 6471 Symbol will be substracted. Must be followed by a BFD_RELOC_64. 6472 6473 -- : BFD_RELOC_MACH_O_X86_64_BRANCH32 6474 -- : BFD_RELOC_MACH_O_X86_64_BRANCH8 6475 PCREL relocations. They are marked as branch to create PLT entry 6476 if required. 6477 6478 -- : BFD_RELOC_MACH_O_X86_64_GOT 6479 Used when referencing a GOT entry. 6480 6481 -- : BFD_RELOC_MACH_O_X86_64_GOT_LOAD 6482 Used when loading a GOT entry with movq. It is specially marked 6483 so that the linker could optimize the movq to a leaq if possible. 6484 6485 -- : BFD_RELOC_MACH_O_X86_64_PCREL32_1 6486 Same as BFD_RELOC_32_PCREL but with an implicit -1 addend. 6487 6488 -- : BFD_RELOC_MACH_O_X86_64_PCREL32_2 6489 Same as BFD_RELOC_32_PCREL but with an implicit -2 addend. 6490 6491 -- : BFD_RELOC_MACH_O_X86_64_PCREL32_4 6492 Same as BFD_RELOC_32_PCREL but with an implicit -4 addend. 6493 6494 -- : BFD_RELOC_MACH_O_ARM64_ADDEND 6495 Addend for PAGE or PAGEOFF. 6496 6497 -- : BFD_RELOC_MACH_O_ARM64_GOT_LOAD_PAGE21 6498 Relative offset to page of GOT slot. 6499 6500 -- : BFD_RELOC_MACH_O_ARM64_GOT_LOAD_PAGEOFF12 6501 Relative offset within page of GOT slot. 6502 6503 -- : BFD_RELOC_MACH_O_ARM64_POINTER_TO_GOT 6504 Address of a GOT entry. 6505 6506 -- : BFD_RELOC_MICROBLAZE_32_LO 6507 This is a 32 bit reloc for the microblaze that stores the low 16 6508 bits of a value 6509 6510 -- : BFD_RELOC_MICROBLAZE_32_LO_PCREL 6511 This is a 32 bit pc-relative reloc for the microblaze that stores 6512 the low 16 bits of a value 6513 6514 -- : BFD_RELOC_MICROBLAZE_32_ROSDA 6515 This is a 32 bit reloc for the microblaze that stores a value 6516 relative to the read-only small data area anchor 6517 6518 -- : BFD_RELOC_MICROBLAZE_32_RWSDA 6519 This is a 32 bit reloc for the microblaze that stores a value 6520 relative to the read-write small data area anchor 6521 6522 -- : BFD_RELOC_MICROBLAZE_32_SYM_OP_SYM 6523 This is a 32 bit reloc for the microblaze to handle expressions of 6524 the form "Symbol Op Symbol" 6525 6526 -- : BFD_RELOC_MICROBLAZE_64_NONE 6527 This is a 64 bit reloc that stores the 32 bit pc relative value in 6528 two words (with an imm instruction). No relocation is done here - 6529 only used for relaxing 6530 6531 -- : BFD_RELOC_MICROBLAZE_64_GOTPC 6532 This is a 64 bit reloc that stores the 32 bit pc relative value in 6533 two words (with an imm instruction). The relocation is 6534 PC-relative GOT offset 6535 6536 -- : BFD_RELOC_MICROBLAZE_64_GOT 6537 This is a 64 bit reloc that stores the 32 bit pc relative value in 6538 two words (with an imm instruction). The relocation is GOT offset 6539 6540 -- : BFD_RELOC_MICROBLAZE_64_PLT 6541 This is a 64 bit reloc that stores the 32 bit pc relative value in 6542 two words (with an imm instruction). The relocation is 6543 PC-relative offset into PLT 6544 6545 -- : BFD_RELOC_MICROBLAZE_64_GOTOFF 6546 This is a 64 bit reloc that stores the 32 bit GOT relative value 6547 in two words (with an imm instruction). The relocation is 6548 relative offset from _GLOBAL_OFFSET_TABLE_ 6549 6550 -- : BFD_RELOC_MICROBLAZE_32_GOTOFF 6551 This is a 32 bit reloc that stores the 32 bit GOT relative value 6552 in a word. The relocation is relative offset from 6553 6554 -- : BFD_RELOC_MICROBLAZE_COPY 6555 This is used to tell the dynamic linker to copy the value out of 6556 the dynamic object into the runtime process image. 6557 6558 -- : BFD_RELOC_MICROBLAZE_64_TLS 6559 Unused Reloc 6560 6561 -- : BFD_RELOC_MICROBLAZE_64_TLSGD 6562 This is a 64 bit reloc that stores the 32 bit GOT relative value 6563 of the GOT TLS GD info entry in two words (with an imm 6564 instruction). The relocation is GOT offset. 6565 6566 -- : BFD_RELOC_MICROBLAZE_64_TLSLD 6567 This is a 64 bit reloc that stores the 32 bit GOT relative value 6568 of the GOT TLS LD info entry in two words (with an imm 6569 instruction). The relocation is GOT offset. 6570 6571 -- : BFD_RELOC_MICROBLAZE_32_TLSDTPMOD 6572 This is a 32 bit reloc that stores the Module ID to GOT(n). 6573 6574 -- : BFD_RELOC_MICROBLAZE_32_TLSDTPREL 6575 This is a 32 bit reloc that stores TLS offset to GOT(n+1). 6576 6577 -- : BFD_RELOC_MICROBLAZE_64_TLSDTPREL 6578 This is a 32 bit reloc for storing TLS offset to two words (uses 6579 imm instruction) 6580 6581 -- : BFD_RELOC_MICROBLAZE_64_TLSGOTTPREL 6582 This is a 64 bit reloc that stores 32-bit thread pointer relative 6583 offset to two words (uses imm instruction). 6584 6585 -- : BFD_RELOC_MICROBLAZE_64_TLSTPREL 6586 This is a 64 bit reloc that stores 32-bit thread pointer relative 6587 offset to two words (uses imm instruction). 6588 6589 -- : BFD_RELOC_AARCH64_RELOC_START 6590 AArch64 pseudo relocation code to mark the start of the AArch64 6591 relocation enumerators. N.B. the order of the enumerators is 6592 important as several tables in the AArch64 bfd backend are indexed 6593 by these enumerators; make sure they are all synced. 6594 6595 -- : BFD_RELOC_AARCH64_NULL 6596 Deprecated AArch64 null relocation code. 6597 6598 -- : BFD_RELOC_AARCH64_NONE 6599 AArch64 null relocation code. 6600 6601 -- : BFD_RELOC_AARCH64_64 6602 -- : BFD_RELOC_AARCH64_32 6603 -- : BFD_RELOC_AARCH64_16 6604 Basic absolute relocations of N bits. These are equivalent to 6605 BFD_RELOC_N and they were added to assist the indexing of the howto 6606 table. 6607 6608 -- : BFD_RELOC_AARCH64_64_PCREL 6609 -- : BFD_RELOC_AARCH64_32_PCREL 6610 -- : BFD_RELOC_AARCH64_16_PCREL 6611 PC-relative relocations. These are equivalent to BFD_RELOC_N_PCREL 6612 and they were added to assist the indexing of the howto table. 6613 6614 -- : BFD_RELOC_AARCH64_MOVW_G0 6615 AArch64 MOV[NZK] instruction with most significant bits 0 to 15 of 6616 an unsigned address/value. 6617 6618 -- : BFD_RELOC_AARCH64_MOVW_G0_NC 6619 AArch64 MOV[NZK] instruction with less significant bits 0 to 15 of 6620 an address/value. No overflow checking. 6621 6622 -- : BFD_RELOC_AARCH64_MOVW_G1 6623 AArch64 MOV[NZK] instruction with most significant bits 16 to 31 6624 of an unsigned address/value. 6625 6626 -- : BFD_RELOC_AARCH64_MOVW_G1_NC 6627 AArch64 MOV[NZK] instruction with less significant bits 16 to 31 6628 of an address/value. No overflow checking. 6629 6630 -- : BFD_RELOC_AARCH64_MOVW_G2 6631 AArch64 MOV[NZK] instruction with most significant bits 32 to 47 6632 of an unsigned address/value. 6633 6634 -- : BFD_RELOC_AARCH64_MOVW_G2_NC 6635 AArch64 MOV[NZK] instruction with less significant bits 32 to 47 6636 of an address/value. No overflow checking. 6637 6638 -- : BFD_RELOC_AARCH64_MOVW_G3 6639 AArch64 MOV[NZK] instruction with most signficant bits 48 to 64 of 6640 a signed or unsigned address/value. 6641 6642 -- : BFD_RELOC_AARCH64_MOVW_G0_S 6643 AArch64 MOV[NZ] instruction with most significant bits 0 to 15 of 6644 a signed value. Changes instruction to MOVZ or MOVN depending on 6645 the value's sign. 6646 6647 -- : BFD_RELOC_AARCH64_MOVW_G1_S 6648 AArch64 MOV[NZ] instruction with most significant bits 16 to 31 of 6649 a signed value. Changes instruction to MOVZ or MOVN depending on 6650 the value's sign. 6651 6652 -- : BFD_RELOC_AARCH64_MOVW_G2_S 6653 AArch64 MOV[NZ] instruction with most significant bits 32 to 47 of 6654 a signed value. Changes instruction to MOVZ or MOVN depending on 6655 the value's sign. 6656 6657 -- : BFD_RELOC_AARCH64_LD_LO19_PCREL 6658 AArch64 Load Literal instruction, holding a 19 bit pc-relative word 6659 offset. The lowest two bits must be zero and are not stored in the 6660 instruction, giving a 21 bit signed byte offset. 6661 6662 -- : BFD_RELOC_AARCH64_ADR_LO21_PCREL 6663 AArch64 ADR instruction, holding a simple 21 bit pc-relative byte 6664 offset. 6665 6666 -- : BFD_RELOC_AARCH64_ADR_HI21_PCREL 6667 AArch64 ADRP instruction, with bits 12 to 32 of a pc-relative page 6668 offset, giving a 4KB aligned page base address. 6669 6670 -- : BFD_RELOC_AARCH64_ADR_HI21_NC_PCREL 6671 AArch64 ADRP instruction, with bits 12 to 32 of a pc-relative page 6672 offset, giving a 4KB aligned page base address, but with no 6673 overflow checking. 6674 6675 -- : BFD_RELOC_AARCH64_ADD_LO12 6676 AArch64 ADD immediate instruction, holding bits 0 to 11 of the 6677 address. Used in conjunction with 6678 BFD_RELOC_AARCH64_ADR_HI21_PCREL. 6679 6680 -- : BFD_RELOC_AARCH64_LDST8_LO12 6681 AArch64 8-bit load/store instruction, holding bits 0 to 11 of the 6682 address. Used in conjunction with 6683 BFD_RELOC_AARCH64_ADR_HI21_PCREL. 6684 6685 -- : BFD_RELOC_AARCH64_TSTBR14 6686 AArch64 14 bit pc-relative test bit and branch. The lowest two 6687 bits must be zero and are not stored in the instruction, giving a 6688 16 bit signed byte offset. 6689 6690 -- : BFD_RELOC_AARCH64_BRANCH19 6691 AArch64 19 bit pc-relative conditional branch and compare & branch. 6692 The lowest two bits must be zero and are not stored in the 6693 instruction, giving a 21 bit signed byte offset. 6694 6695 -- : BFD_RELOC_AARCH64_JUMP26 6696 AArch64 26 bit pc-relative unconditional branch. The lowest two 6697 bits must be zero and are not stored in the instruction, giving a 6698 28 bit signed byte offset. 6699 6700 -- : BFD_RELOC_AARCH64_CALL26 6701 AArch64 26 bit pc-relative unconditional branch and link. The 6702 lowest two bits must be zero and are not stored in the instruction, 6703 giving a 28 bit signed byte offset. 6704 6705 -- : BFD_RELOC_AARCH64_LDST16_LO12 6706 AArch64 16-bit load/store instruction, holding bits 0 to 11 of the 6707 address. Used in conjunction with 6708 BFD_RELOC_AARCH64_ADR_HI21_PCREL. 6709 6710 -- : BFD_RELOC_AARCH64_LDST32_LO12 6711 AArch64 32-bit load/store instruction, holding bits 0 to 11 of the 6712 address. Used in conjunction with 6713 BFD_RELOC_AARCH64_ADR_HI21_PCREL. 6714 6715 -- : BFD_RELOC_AARCH64_LDST64_LO12 6716 AArch64 64-bit load/store instruction, holding bits 0 to 11 of the 6717 address. Used in conjunction with 6718 BFD_RELOC_AARCH64_ADR_HI21_PCREL. 6719 6720 -- : BFD_RELOC_AARCH64_LDST128_LO12 6721 AArch64 128-bit load/store instruction, holding bits 0 to 11 of the 6722 address. Used in conjunction with 6723 BFD_RELOC_AARCH64_ADR_HI21_PCREL. 6724 6725 -- : BFD_RELOC_AARCH64_GOT_LD_PREL19 6726 AArch64 Load Literal instruction, holding a 19 bit PC relative word 6727 offset of the global offset table entry for a symbol. The lowest 6728 two bits must be zero and are not stored in the instruction, 6729 giving a 21 bit signed byte offset. This relocation type requires 6730 signed overflow checking. 6731 6732 -- : BFD_RELOC_AARCH64_ADR_GOT_PAGE 6733 Get to the page base of the global offset table entry for a symbol 6734 as part of an ADRP instruction using a 21 bit PC relative 6735 value.Used in conjunction with BFD_RELOC_AARCH64_LD64_GOT_LO12_NC. 6736 6737 -- : BFD_RELOC_AARCH64_LD64_GOT_LO12_NC 6738 Unsigned 12 bit byte offset for 64 bit load/store from the page of 6739 the GOT entry for this symbol. Used in conjunction with 6740 BFD_RELOC_AARCH64_ADR_GOTPAGE. Valid in LP64 ABI only. 6741 6742 -- : BFD_RELOC_AARCH64_LD32_GOT_LO12_NC 6743 Unsigned 12 bit byte offset for 32 bit load/store from the page of 6744 the GOT entry for this symbol. Used in conjunction with 6745 BFD_RELOC_AARCH64_ADR_GOTPAGE. Valid in ILP32 ABI only. 6746 6747 -- : BFD_RELOC_AARCH64_MOVW_GOTOFF_G0_NC 6748 Unsigned 16 bit byte offset for 64 bit load/store from the GOT 6749 entry for this symbol. Valid in LP64 ABI only. 6750 6751 -- : BFD_RELOC_AARCH64_MOVW_GOTOFF_G1 6752 Unsigned 16 bit byte higher offset for 64 bit load/store from the 6753 GOT entry for this symbol. Valid in LP64 ABI only. 6754 6755 -- : BFD_RELOC_AARCH64_LD64_GOTOFF_LO15 6756 Unsigned 15 bit byte offset for 64 bit load/store from the page of 6757 the GOT entry for this symbol. Valid in LP64 ABI only. 6758 6759 -- : BFD_RELOC_AARCH64_LD32_GOTPAGE_LO14 6760 Scaled 14 bit byte offset to the page base of the global offset 6761 table. 6762 6763 -- : BFD_RELOC_AARCH64_LD64_GOTPAGE_LO15 6764 Scaled 15 bit byte offset to the page base of the global offset 6765 table. 6766 6767 -- : BFD_RELOC_AARCH64_TLSGD_ADR_PAGE21 6768 Get to the page base of the global offset table entry for a symbols 6769 tls_index structure as part of an adrp instruction using a 21 bit 6770 PC relative value. Used in conjunction with 6771 BFD_RELOC_AARCH64_TLSGD_ADD_LO12_NC. 6772 6773 -- : BFD_RELOC_AARCH64_TLSGD_ADR_PREL21 6774 AArch64 TLS General Dynamic 6775 6776 -- : BFD_RELOC_AARCH64_TLSGD_ADD_LO12_NC 6777 Unsigned 12 bit byte offset to global offset table entry for a 6778 symbols tls_index structure. Used in conjunction with 6779 BFD_RELOC_AARCH64_TLSGD_ADR_PAGE21. 6780 6781 -- : BFD_RELOC_AARCH64_TLSGD_MOVW_G0_NC 6782 AArch64 TLS General Dynamic relocation. 6783 6784 -- : BFD_RELOC_AARCH64_TLSGD_MOVW_G1 6785 AArch64 TLS General Dynamic relocation. 6786 6787 -- : BFD_RELOC_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21 6788 AArch64 TLS INITIAL EXEC relocation. 6789 6790 -- : BFD_RELOC_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC 6791 AArch64 TLS INITIAL EXEC relocation. 6792 6793 -- : BFD_RELOC_AARCH64_TLSIE_LD32_GOTTPREL_LO12_NC 6794 AArch64 TLS INITIAL EXEC relocation. 6795 6796 -- : BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_PREL19 6797 AArch64 TLS INITIAL EXEC relocation. 6798 6799 -- : BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC 6800 AArch64 TLS INITIAL EXEC relocation. 6801 6802 -- : BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G1 6803 AArch64 TLS INITIAL EXEC relocation. 6804 6805 -- : BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_HI12 6806 bit[23:12] of byte offset to module TLS base address. 6807 6808 -- : BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12 6809 Unsigned 12 bit byte offset to module TLS base address. 6810 6811 -- : BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12_NC 6812 No overflow check version of 6813 BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12. 6814 6815 -- : BFD_RELOC_AARCH64_TLSLD_ADD_LO12_NC 6816 Unsigned 12 bit byte offset to global offset table entry for a 6817 symbols tls_index structure. Used in conjunction with 6818 BFD_RELOC_AARCH64_TLSLD_ADR_PAGE21. 6819 6820 -- : BFD_RELOC_AARCH64_TLSLD_ADR_PAGE21 6821 GOT entry page address for AArch64 TLS Local Dynamic, used with 6822 ADRP instruction. 6823 6824 -- : BFD_RELOC_AARCH64_TLSLD_ADR_PREL21 6825 GOT entry address for AArch64 TLS Local Dynamic, used with ADR 6826 instruction. 6827 6828 -- : BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12 6829 bit[11:1] of byte offset to module TLS base address, encoded in 6830 ldst instructions. 6831 6832 -- : BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC 6833 Similar as BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12, but no 6834 overflow check. 6835 6836 -- : BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12 6837 bit[11:2] of byte offset to module TLS base address, encoded in 6838 ldst instructions. 6839 6840 -- : BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC 6841 Similar as BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12, but no 6842 overflow check. 6843 6844 -- : BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12 6845 bit[11:3] of byte offset to module TLS base address, encoded in 6846 ldst instructions. 6847 6848 -- : BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC 6849 Similar as BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12, but no 6850 overflow check. 6851 6852 -- : BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12 6853 bit[11:0] of byte offset to module TLS base address, encoded in 6854 ldst instructions. 6855 6856 -- : BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC 6857 Similar as BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12, but no 6858 overflow check. 6859 6860 -- : BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0 6861 bit[15:0] of byte offset to module TLS base address. 6862 6863 -- : BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0_NC 6864 No overflow check version of BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0 6865 6866 -- : BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1 6867 bit[31:16] of byte offset to module TLS base address. 6868 6869 -- : BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1_NC 6870 No overflow check version of BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1 6871 6872 -- : BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G2 6873 bit[47:32] of byte offset to module TLS base address. 6874 6875 -- : BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G2 6876 AArch64 TLS LOCAL EXEC relocation. 6877 6878 -- : BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1 6879 AArch64 TLS LOCAL EXEC relocation. 6880 6881 -- : BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1_NC 6882 AArch64 TLS LOCAL EXEC relocation. 6883 6884 -- : BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0 6885 AArch64 TLS LOCAL EXEC relocation. 6886 6887 -- : BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0_NC 6888 AArch64 TLS LOCAL EXEC relocation. 6889 6890 -- : BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_HI12 6891 AArch64 TLS LOCAL EXEC relocation. 6892 6893 -- : BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12 6894 AArch64 TLS LOCAL EXEC relocation. 6895 6896 -- : BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12_NC 6897 AArch64 TLS LOCAL EXEC relocation. 6898 6899 -- : BFD_RELOC_AARCH64_TLSDESC_LD_PREL19 6900 AArch64 TLS DESC relocation. 6901 6902 -- : BFD_RELOC_AARCH64_TLSDESC_ADR_PREL21 6903 AArch64 TLS DESC relocation. 6904 6905 -- : BFD_RELOC_AARCH64_TLSDESC_ADR_PAGE21 6906 AArch64 TLS DESC relocation. 6907 6908 -- : BFD_RELOC_AARCH64_TLSDESC_LD64_LO12_NC 6909 AArch64 TLS DESC relocation. 6910 6911 -- : BFD_RELOC_AARCH64_TLSDESC_LD32_LO12_NC 6912 AArch64 TLS DESC relocation. 6913 6914 -- : BFD_RELOC_AARCH64_TLSDESC_ADD_LO12_NC 6915 AArch64 TLS DESC relocation. 6916 6917 -- : BFD_RELOC_AARCH64_TLSDESC_OFF_G1 6918 AArch64 TLS DESC relocation. 6919 6920 -- : BFD_RELOC_AARCH64_TLSDESC_OFF_G0_NC 6921 AArch64 TLS DESC relocation. 6922 6923 -- : BFD_RELOC_AARCH64_TLSDESC_LDR 6924 AArch64 TLS DESC relocation. 6925 6926 -- : BFD_RELOC_AARCH64_TLSDESC_ADD 6927 AArch64 TLS DESC relocation. 6928 6929 -- : BFD_RELOC_AARCH64_TLSDESC_CALL 6930 AArch64 TLS DESC relocation. 6931 6932 -- : BFD_RELOC_AARCH64_COPY 6933 AArch64 TLS relocation. 6934 6935 -- : BFD_RELOC_AARCH64_GLOB_DAT 6936 AArch64 TLS relocation. 6937 6938 -- : BFD_RELOC_AARCH64_JUMP_SLOT 6939 AArch64 TLS relocation. 6940 6941 -- : BFD_RELOC_AARCH64_RELATIVE 6942 AArch64 TLS relocation. 6943 6944 -- : BFD_RELOC_AARCH64_TLS_DTPMOD 6945 AArch64 TLS relocation. 6946 6947 -- : BFD_RELOC_AARCH64_TLS_DTPREL 6948 AArch64 TLS relocation. 6949 6950 -- : BFD_RELOC_AARCH64_TLS_TPREL 6951 AArch64 TLS relocation. 6952 6953 -- : BFD_RELOC_AARCH64_TLSDESC 6954 AArch64 TLS relocation. 6955 6956 -- : BFD_RELOC_AARCH64_IRELATIVE 6957 AArch64 support for STT_GNU_IFUNC. 6958 6959 -- : BFD_RELOC_AARCH64_RELOC_END 6960 AArch64 pseudo relocation code to mark the end of the AArch64 6961 relocation enumerators that have direct mapping to ELF reloc codes. 6962 There are a few more enumerators after this one; those are mainly 6963 used by the AArch64 assembler for the internal fixup or to select 6964 one of the above enumerators. 6965 6966 -- : BFD_RELOC_AARCH64_GAS_INTERNAL_FIXUP 6967 AArch64 pseudo relocation code to be used internally by the AArch64 6968 assembler and not (currently) written to any object files. 6969 6970 -- : BFD_RELOC_AARCH64_LDST_LO12 6971 AArch64 unspecified load/store instruction, holding bits 0 to 11 6972 of the address. Used in conjunction with 6973 BFD_RELOC_AARCH64_ADR_HI21_PCREL. 6974 6975 -- : BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12 6976 AArch64 pseudo relocation code for TLS local dynamic mode. It's 6977 to be used internally by the AArch64 assembler and not (currently) 6978 written to any object files. 6979 6980 -- : BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12_NC 6981 Similar as BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12, but no 6982 overflow check. 6983 6984 -- : BFD_RELOC_AARCH64_LD_GOT_LO12_NC 6985 AArch64 pseudo relocation code to be used internally by the AArch64 6986 assembler and not (currently) written to any object files. 6987 6988 -- : BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_LO12_NC 6989 AArch64 pseudo relocation code to be used internally by the AArch64 6990 assembler and not (currently) written to any object files. 6991 6992 -- : BFD_RELOC_AARCH64_TLSDESC_LD_LO12_NC 6993 AArch64 pseudo relocation code to be used internally by the AArch64 6994 assembler and not (currently) written to any object files. 6995 6996 -- : BFD_RELOC_TILEPRO_COPY 6997 -- : BFD_RELOC_TILEPRO_GLOB_DAT 6998 -- : BFD_RELOC_TILEPRO_JMP_SLOT 6999 -- : BFD_RELOC_TILEPRO_RELATIVE 7000 -- : BFD_RELOC_TILEPRO_BROFF_X1 7001 -- : BFD_RELOC_TILEPRO_JOFFLONG_X1 7002 -- : BFD_RELOC_TILEPRO_JOFFLONG_X1_PLT 7003 -- : BFD_RELOC_TILEPRO_IMM8_X0 7004 -- : BFD_RELOC_TILEPRO_IMM8_Y0 7005 -- : BFD_RELOC_TILEPRO_IMM8_X1 7006 -- : BFD_RELOC_TILEPRO_IMM8_Y1 7007 -- : BFD_RELOC_TILEPRO_DEST_IMM8_X1 7008 -- : BFD_RELOC_TILEPRO_MT_IMM15_X1 7009 -- : BFD_RELOC_TILEPRO_MF_IMM15_X1 7010 -- : BFD_RELOC_TILEPRO_IMM16_X0 7011 -- : BFD_RELOC_TILEPRO_IMM16_X1 7012 -- : BFD_RELOC_TILEPRO_IMM16_X0_LO 7013 -- : BFD_RELOC_TILEPRO_IMM16_X1_LO 7014 -- : BFD_RELOC_TILEPRO_IMM16_X0_HI 7015 -- : BFD_RELOC_TILEPRO_IMM16_X1_HI 7016 -- : BFD_RELOC_TILEPRO_IMM16_X0_HA 7017 -- : BFD_RELOC_TILEPRO_IMM16_X1_HA 7018 -- : BFD_RELOC_TILEPRO_IMM16_X0_PCREL 7019 -- : BFD_RELOC_TILEPRO_IMM16_X1_PCREL 7020 -- : BFD_RELOC_TILEPRO_IMM16_X0_LO_PCREL 7021 -- : BFD_RELOC_TILEPRO_IMM16_X1_LO_PCREL 7022 -- : BFD_RELOC_TILEPRO_IMM16_X0_HI_PCREL 7023 -- : BFD_RELOC_TILEPRO_IMM16_X1_HI_PCREL 7024 -- : BFD_RELOC_TILEPRO_IMM16_X0_HA_PCREL 7025 -- : BFD_RELOC_TILEPRO_IMM16_X1_HA_PCREL 7026 -- : BFD_RELOC_TILEPRO_IMM16_X0_GOT 7027 -- : BFD_RELOC_TILEPRO_IMM16_X1_GOT 7028 -- : BFD_RELOC_TILEPRO_IMM16_X0_GOT_LO 7029 -- : BFD_RELOC_TILEPRO_IMM16_X1_GOT_LO 7030 -- : BFD_RELOC_TILEPRO_IMM16_X0_GOT_HI 7031 -- : BFD_RELOC_TILEPRO_IMM16_X1_GOT_HI 7032 -- : BFD_RELOC_TILEPRO_IMM16_X0_GOT_HA 7033 -- : BFD_RELOC_TILEPRO_IMM16_X1_GOT_HA 7034 -- : BFD_RELOC_TILEPRO_MMSTART_X0 7035 -- : BFD_RELOC_TILEPRO_MMEND_X0 7036 -- : BFD_RELOC_TILEPRO_MMSTART_X1 7037 -- : BFD_RELOC_TILEPRO_MMEND_X1 7038 -- : BFD_RELOC_TILEPRO_SHAMT_X0 7039 -- : BFD_RELOC_TILEPRO_SHAMT_X1 7040 -- : BFD_RELOC_TILEPRO_SHAMT_Y0 7041 -- : BFD_RELOC_TILEPRO_SHAMT_Y1 7042 -- : BFD_RELOC_TILEPRO_TLS_GD_CALL 7043 -- : BFD_RELOC_TILEPRO_IMM8_X0_TLS_GD_ADD 7044 -- : BFD_RELOC_TILEPRO_IMM8_X1_TLS_GD_ADD 7045 -- : BFD_RELOC_TILEPRO_IMM8_Y0_TLS_GD_ADD 7046 -- : BFD_RELOC_TILEPRO_IMM8_Y1_TLS_GD_ADD 7047 -- : BFD_RELOC_TILEPRO_TLS_IE_LOAD 7048 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD 7049 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD 7050 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_LO 7051 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_LO 7052 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HI 7053 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HI 7054 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HA 7055 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HA 7056 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE 7057 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE 7058 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_LO 7059 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_LO 7060 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HI 7061 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HI 7062 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HA 7063 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HA 7064 -- : BFD_RELOC_TILEPRO_TLS_DTPMOD32 7065 -- : BFD_RELOC_TILEPRO_TLS_DTPOFF32 7066 -- : BFD_RELOC_TILEPRO_TLS_TPOFF32 7067 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE 7068 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE 7069 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_LO 7070 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_LO 7071 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HI 7072 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HI 7073 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HA 7074 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HA 7075 Tilera TILEPro Relocations. 7076 7077 -- : BFD_RELOC_TILEGX_HW0 7078 -- : BFD_RELOC_TILEGX_HW1 7079 -- : BFD_RELOC_TILEGX_HW2 7080 -- : BFD_RELOC_TILEGX_HW3 7081 -- : BFD_RELOC_TILEGX_HW0_LAST 7082 -- : BFD_RELOC_TILEGX_HW1_LAST 7083 -- : BFD_RELOC_TILEGX_HW2_LAST 7084 -- : BFD_RELOC_TILEGX_COPY 7085 -- : BFD_RELOC_TILEGX_GLOB_DAT 7086 -- : BFD_RELOC_TILEGX_JMP_SLOT 7087 -- : BFD_RELOC_TILEGX_RELATIVE 7088 -- : BFD_RELOC_TILEGX_BROFF_X1 7089 -- : BFD_RELOC_TILEGX_JUMPOFF_X1 7090 -- : BFD_RELOC_TILEGX_JUMPOFF_X1_PLT 7091 -- : BFD_RELOC_TILEGX_IMM8_X0 7092 -- : BFD_RELOC_TILEGX_IMM8_Y0 7093 -- : BFD_RELOC_TILEGX_IMM8_X1 7094 -- : BFD_RELOC_TILEGX_IMM8_Y1 7095 -- : BFD_RELOC_TILEGX_DEST_IMM8_X1 7096 -- : BFD_RELOC_TILEGX_MT_IMM14_X1 7097 -- : BFD_RELOC_TILEGX_MF_IMM14_X1 7098 -- : BFD_RELOC_TILEGX_MMSTART_X0 7099 -- : BFD_RELOC_TILEGX_MMEND_X0 7100 -- : BFD_RELOC_TILEGX_SHAMT_X0 7101 -- : BFD_RELOC_TILEGX_SHAMT_X1 7102 -- : BFD_RELOC_TILEGX_SHAMT_Y0 7103 -- : BFD_RELOC_TILEGX_SHAMT_Y1 7104 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0 7105 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0 7106 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1 7107 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1 7108 -- : BFD_RELOC_TILEGX_IMM16_X0_HW2 7109 -- : BFD_RELOC_TILEGX_IMM16_X1_HW2 7110 -- : BFD_RELOC_TILEGX_IMM16_X0_HW3 7111 -- : BFD_RELOC_TILEGX_IMM16_X1_HW3 7112 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST 7113 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST 7114 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST 7115 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST 7116 -- : BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST 7117 -- : BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST 7118 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_PCREL 7119 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_PCREL 7120 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_PCREL 7121 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_PCREL 7122 -- : BFD_RELOC_TILEGX_IMM16_X0_HW2_PCREL 7123 -- : BFD_RELOC_TILEGX_IMM16_X1_HW2_PCREL 7124 -- : BFD_RELOC_TILEGX_IMM16_X0_HW3_PCREL 7125 -- : BFD_RELOC_TILEGX_IMM16_X1_HW3_PCREL 7126 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_PCREL 7127 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_PCREL 7128 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_PCREL 7129 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_PCREL 7130 -- : BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_PCREL 7131 -- : BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PCREL 7132 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_GOT 7133 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_GOT 7134 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_PLT_PCREL 7135 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_PLT_PCREL 7136 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_PLT_PCREL 7137 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_PLT_PCREL 7138 -- : BFD_RELOC_TILEGX_IMM16_X0_HW2_PLT_PCREL 7139 -- : BFD_RELOC_TILEGX_IMM16_X1_HW2_PLT_PCREL 7140 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_GOT 7141 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_GOT 7142 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_GOT 7143 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_GOT 7144 -- : BFD_RELOC_TILEGX_IMM16_X0_HW3_PLT_PCREL 7145 -- : BFD_RELOC_TILEGX_IMM16_X1_HW3_PLT_PCREL 7146 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_GD 7147 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_GD 7148 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_LE 7149 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_LE 7150 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_LE 7151 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_LE 7152 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_LE 7153 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_LE 7154 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_GD 7155 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_GD 7156 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_GD 7157 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_GD 7158 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_IE 7159 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_IE 7160 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_PLT_PCREL 7161 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_PLT_PCREL 7162 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_PLT_PCREL 7163 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_PLT_PCREL 7164 -- : BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_PLT_PCREL 7165 -- : BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PLT_PCREL 7166 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_IE 7167 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_IE 7168 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_IE 7169 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_IE 7170 -- : BFD_RELOC_TILEGX_TLS_DTPMOD64 7171 -- : BFD_RELOC_TILEGX_TLS_DTPOFF64 7172 -- : BFD_RELOC_TILEGX_TLS_TPOFF64 7173 -- : BFD_RELOC_TILEGX_TLS_DTPMOD32 7174 -- : BFD_RELOC_TILEGX_TLS_DTPOFF32 7175 -- : BFD_RELOC_TILEGX_TLS_TPOFF32 7176 -- : BFD_RELOC_TILEGX_TLS_GD_CALL 7177 -- : BFD_RELOC_TILEGX_IMM8_X0_TLS_GD_ADD 7178 -- : BFD_RELOC_TILEGX_IMM8_X1_TLS_GD_ADD 7179 -- : BFD_RELOC_TILEGX_IMM8_Y0_TLS_GD_ADD 7180 -- : BFD_RELOC_TILEGX_IMM8_Y1_TLS_GD_ADD 7181 -- : BFD_RELOC_TILEGX_TLS_IE_LOAD 7182 -- : BFD_RELOC_TILEGX_IMM8_X0_TLS_ADD 7183 -- : BFD_RELOC_TILEGX_IMM8_X1_TLS_ADD 7184 -- : BFD_RELOC_TILEGX_IMM8_Y0_TLS_ADD 7185 -- : BFD_RELOC_TILEGX_IMM8_Y1_TLS_ADD 7186 Tilera TILE-Gx Relocations. 7187 7188 -- : BFD_RELOC_EPIPHANY_SIMM8 7189 Adapteva EPIPHANY - 8 bit signed pc-relative displacement 7190 7191 -- : BFD_RELOC_EPIPHANY_SIMM24 7192 Adapteva EPIPHANY - 24 bit signed pc-relative displacement 7193 7194 -- : BFD_RELOC_EPIPHANY_HIGH 7195 Adapteva EPIPHANY - 16 most-significant bits of absolute address 7196 7197 -- : BFD_RELOC_EPIPHANY_LOW 7198 Adapteva EPIPHANY - 16 least-significant bits of absolute address 7199 7200 -- : BFD_RELOC_EPIPHANY_SIMM11 7201 Adapteva EPIPHANY - 11 bit signed number - add/sub immediate 7202 7203 -- : BFD_RELOC_EPIPHANY_IMM11 7204 Adapteva EPIPHANY - 11 bit sign-magnitude number (ld/st 7205 displacement) 7206 7207 -- : BFD_RELOC_EPIPHANY_IMM8 7208 Adapteva EPIPHANY - 8 bit immediate for 16 bit mov instruction. 7209 7210 -- : BFD_RELOC_VISIUM_HI16 7211 -- : BFD_RELOC_VISIUM_LO16 7212 -- : BFD_RELOC_VISIUM_IM16 7213 -- : BFD_RELOC_VISIUM_REL16 7214 -- : BFD_RELOC_VISIUM_HI16_PCREL 7215 -- : BFD_RELOC_VISIUM_LO16_PCREL 7216 -- : BFD_RELOC_VISIUM_IM16_PCREL 7217 Visium Relocations. 7218 7219 7220 typedef enum bfd_reloc_code_real bfd_reloc_code_real_type; 7221 72222.10.2.2 `bfd_reloc_type_lookup' 7223................................ 7224 7225*Synopsis* 7226 reloc_howto_type *bfd_reloc_type_lookup 7227 (bfd *abfd, bfd_reloc_code_real_type code); 7228 reloc_howto_type *bfd_reloc_name_lookup 7229 (bfd *abfd, const char *reloc_name); 7230 *Description* 7231Return a pointer to a howto structure which, when invoked, will perform 7232the relocation CODE on data from the architecture noted. 7233 72342.10.2.3 `bfd_default_reloc_type_lookup' 7235........................................ 7236 7237*Synopsis* 7238 reloc_howto_type *bfd_default_reloc_type_lookup 7239 (bfd *abfd, bfd_reloc_code_real_type code); 7240 *Description* 7241Provides a default relocation lookup routine for any architecture. 7242 72432.10.2.4 `bfd_get_reloc_code_name' 7244.................................. 7245 7246*Synopsis* 7247 const char *bfd_get_reloc_code_name (bfd_reloc_code_real_type code); 7248 *Description* 7249Provides a printable name for the supplied relocation code. Useful 7250mainly for printing error messages. 7251 72522.10.2.5 `bfd_generic_relax_section' 7253.................................... 7254 7255*Synopsis* 7256 bfd_boolean bfd_generic_relax_section 7257 (bfd *abfd, 7258 asection *section, 7259 struct bfd_link_info *, 7260 bfd_boolean *); 7261 *Description* 7262Provides default handling for relaxing for back ends which don't do 7263relaxing. 7264 72652.10.2.6 `bfd_generic_gc_sections' 7266.................................. 7267 7268*Synopsis* 7269 bfd_boolean bfd_generic_gc_sections 7270 (bfd *, struct bfd_link_info *); 7271 *Description* 7272Provides default handling for relaxing for back ends which don't do 7273section gc - i.e., does nothing. 7274 72752.10.2.7 `bfd_generic_lookup_section_flags' 7276........................................... 7277 7278*Synopsis* 7279 bfd_boolean bfd_generic_lookup_section_flags 7280 (struct bfd_link_info *, struct flag_info *, asection *); 7281 *Description* 7282Provides default handling for section flags lookup - i.e., does nothing. 7283Returns FALSE if the section should be omitted, otherwise TRUE. 7284 72852.10.2.8 `bfd_generic_merge_sections' 7286..................................... 7287 7288*Synopsis* 7289 bfd_boolean bfd_generic_merge_sections 7290 (bfd *, struct bfd_link_info *); 7291 *Description* 7292Provides default handling for SEC_MERGE section merging for back ends 7293which don't have SEC_MERGE support - i.e., does nothing. 7294 72952.10.2.9 `bfd_generic_get_relocated_section_contents' 7296..................................................... 7297 7298*Synopsis* 7299 bfd_byte *bfd_generic_get_relocated_section_contents 7300 (bfd *abfd, 7301 struct bfd_link_info *link_info, 7302 struct bfd_link_order *link_order, 7303 bfd_byte *data, 7304 bfd_boolean relocatable, 7305 asymbol **symbols); 7306 *Description* 7307Provides default handling of relocation effort for back ends which 7308can't be bothered to do it efficiently. 7309 7310 7311File: bfd.info, Node: Core Files, Next: Targets, Prev: Relocations, Up: BFD front end 7312 73132.11 Core files 7314=============== 7315 73162.11.1 Core file functions 7317-------------------------- 7318 7319*Description* 7320These are functions pertaining to core files. 7321 73222.11.1.1 `bfd_core_file_failing_command' 7323........................................ 7324 7325*Synopsis* 7326 const char *bfd_core_file_failing_command (bfd *abfd); 7327 *Description* 7328Return a read-only string explaining which program was running when it 7329failed and produced the core file ABFD. 7330 73312.11.1.2 `bfd_core_file_failing_signal' 7332....................................... 7333 7334*Synopsis* 7335 int bfd_core_file_failing_signal (bfd *abfd); 7336 *Description* 7337Returns the signal number which caused the core dump which generated 7338the file the BFD ABFD is attached to. 7339 73402.11.1.3 `bfd_core_file_pid' 7341............................ 7342 7343*Synopsis* 7344 int bfd_core_file_pid (bfd *abfd); 7345 *Description* 7346Returns the PID of the process the core dump the BFD ABFD is attached 7347to was generated from. 7348 73492.11.1.4 `core_file_matches_executable_p' 7350......................................... 7351 7352*Synopsis* 7353 bfd_boolean core_file_matches_executable_p 7354 (bfd *core_bfd, bfd *exec_bfd); 7355 *Description* 7356Return `TRUE' if the core file attached to CORE_BFD was generated by a 7357run of the executable file attached to EXEC_BFD, `FALSE' otherwise. 7358 73592.11.1.5 `generic_core_file_matches_executable_p' 7360................................................. 7361 7362*Synopsis* 7363 bfd_boolean generic_core_file_matches_executable_p 7364 (bfd *core_bfd, bfd *exec_bfd); 7365 *Description* 7366Return TRUE if the core file attached to CORE_BFD was generated by a 7367run of the executable file attached to EXEC_BFD. The match is based on 7368executable basenames only. 7369 7370 Note: When not able to determine the core file failing command or 7371the executable name, we still return TRUE even though we're not sure 7372that core file and executable match. This is to avoid generating a 7373false warning in situations where we really don't know whether they 7374match or not. 7375 7376 7377File: bfd.info, Node: Targets, Next: Architectures, Prev: Core Files, Up: BFD front end 7378 73792.12 Targets 7380============ 7381 7382*Description* 7383Each port of BFD to a different machine requires the creation of a 7384target back end. All the back end provides to the root part of BFD is a 7385structure containing pointers to functions which perform certain low 7386level operations on files. BFD translates the applications's requests 7387through a pointer into calls to the back end routines. 7388 7389 When a file is opened with `bfd_openr', its format and target are 7390unknown. BFD uses various mechanisms to determine how to interpret the 7391file. The operations performed are: 7392 7393 * Create a BFD by calling the internal routine `_bfd_new_bfd', then 7394 call `bfd_find_target' with the target string supplied to 7395 `bfd_openr' and the new BFD pointer. 7396 7397 * If a null target string was provided to `bfd_find_target', look up 7398 the environment variable `GNUTARGET' and use that as the target 7399 string. 7400 7401 * If the target string is still `NULL', or the target string is 7402 `default', then use the first item in the target vector as the 7403 target type, and set `target_defaulted' in the BFD to cause 7404 `bfd_check_format' to loop through all the targets. *Note 7405 bfd_target::. *Note Formats::. 7406 7407 * Otherwise, inspect the elements in the target vector one by one, 7408 until a match on target name is found. When found, use it. 7409 7410 * Otherwise return the error `bfd_error_invalid_target' to 7411 `bfd_openr'. 7412 7413 * `bfd_openr' attempts to open the file using `bfd_open_file', and 7414 returns the BFD. 7415 Once the BFD has been opened and the target selected, the file 7416format may be determined. This is done by calling `bfd_check_format' on 7417the BFD with a suggested format. If `target_defaulted' has been set, 7418each possible target type is tried to see if it recognizes the 7419specified format. `bfd_check_format' returns `TRUE' when the caller 7420guesses right. 7421 7422* Menu: 7423 7424* bfd_target:: 7425 7426 7427File: bfd.info, Node: bfd_target, Prev: Targets, Up: Targets 7428 74292.12.1 bfd_target 7430----------------- 7431 7432*Description* 7433This structure contains everything that BFD knows about a target. It 7434includes things like its byte order, name, and which routines to call 7435to do various operations. 7436 7437 Every BFD points to a target structure with its `xvec' member. 7438 7439 The macros below are used to dispatch to functions through the 7440`bfd_target' vector. They are used in a number of macros further down 7441in `bfd.h', and are also used when calling various routines by hand 7442inside the BFD implementation. The ARGLIST argument must be 7443parenthesized; it contains all the arguments to the called function. 7444 7445 They make the documentation (more) unpleasant to read, so if someone 7446wants to fix this and not break the above, please do. 7447 #define BFD_SEND(bfd, message, arglist) \ 7448 ((*((bfd)->xvec->message)) arglist) 7449 7450 #ifdef DEBUG_BFD_SEND 7451 #undef BFD_SEND 7452 #define BFD_SEND(bfd, message, arglist) \ 7453 (((bfd) && (bfd)->xvec && (bfd)->xvec->message) ? \ 7454 ((*((bfd)->xvec->message)) arglist) : \ 7455 (bfd_assert (__FILE__,__LINE__), NULL)) 7456 #endif 7457 For operations which index on the BFD format: 7458 #define BFD_SEND_FMT(bfd, message, arglist) \ 7459 (((bfd)->xvec->message[(int) ((bfd)->format)]) arglist) 7460 7461 #ifdef DEBUG_BFD_SEND 7462 #undef BFD_SEND_FMT 7463 #define BFD_SEND_FMT(bfd, message, arglist) \ 7464 (((bfd) && (bfd)->xvec && (bfd)->xvec->message) ? \ 7465 (((bfd)->xvec->message[(int) ((bfd)->format)]) arglist) : \ 7466 (bfd_assert (__FILE__,__LINE__), NULL)) 7467 #endif 7468 This is the structure which defines the type of BFD this is. The 7469`xvec' member of the struct `bfd' itself points here. Each module that 7470implements access to a different target under BFD, defines one of these. 7471 7472 FIXME, these names should be rationalised with the names of the 7473entry points which call them. Too bad we can't have one macro to define 7474them both! 7475 enum bfd_flavour 7476 { 7477 /* N.B. Update bfd_flavour_name if you change this. */ 7478 bfd_target_unknown_flavour, 7479 bfd_target_aout_flavour, 7480 bfd_target_coff_flavour, 7481 bfd_target_ecoff_flavour, 7482 bfd_target_xcoff_flavour, 7483 bfd_target_elf_flavour, 7484 bfd_target_ieee_flavour, 7485 bfd_target_nlm_flavour, 7486 bfd_target_oasys_flavour, 7487 bfd_target_tekhex_flavour, 7488 bfd_target_srec_flavour, 7489 bfd_target_verilog_flavour, 7490 bfd_target_ihex_flavour, 7491 bfd_target_som_flavour, 7492 bfd_target_os9k_flavour, 7493 bfd_target_versados_flavour, 7494 bfd_target_msdos_flavour, 7495 bfd_target_ovax_flavour, 7496 bfd_target_evax_flavour, 7497 bfd_target_mmo_flavour, 7498 bfd_target_mach_o_flavour, 7499 bfd_target_pef_flavour, 7500 bfd_target_pef_xlib_flavour, 7501 bfd_target_sym_flavour 7502 }; 7503 7504 enum bfd_endian { BFD_ENDIAN_BIG, BFD_ENDIAN_LITTLE, BFD_ENDIAN_UNKNOWN }; 7505 7506 /* Forward declaration. */ 7507 typedef struct bfd_link_info _bfd_link_info; 7508 7509 /* Forward declaration. */ 7510 typedef struct flag_info flag_info; 7511 7512 typedef struct bfd_target 7513 { 7514 /* Identifies the kind of target, e.g., SunOS4, Ultrix, etc. */ 7515 char *name; 7516 7517 /* The "flavour" of a back end is a general indication about 7518 the contents of a file. */ 7519 enum bfd_flavour flavour; 7520 7521 /* The order of bytes within the data area of a file. */ 7522 enum bfd_endian byteorder; 7523 7524 /* The order of bytes within the header parts of a file. */ 7525 enum bfd_endian header_byteorder; 7526 7527 /* A mask of all the flags which an executable may have set - 7528 from the set `BFD_NO_FLAGS', `HAS_RELOC', ...`D_PAGED'. */ 7529 flagword object_flags; 7530 7531 /* A mask of all the flags which a section may have set - from 7532 the set `SEC_NO_FLAGS', `SEC_ALLOC', ...`SET_NEVER_LOAD'. */ 7533 flagword section_flags; 7534 7535 /* The character normally found at the front of a symbol. 7536 (if any), perhaps `_'. */ 7537 char symbol_leading_char; 7538 7539 /* The pad character for file names within an archive header. */ 7540 char ar_pad_char; 7541 7542 /* The maximum number of characters in an archive header. */ 7543 unsigned char ar_max_namelen; 7544 7545 /* How well this target matches, used to select between various 7546 possible targets when more than one target matches. */ 7547 unsigned char match_priority; 7548 7549 /* Entries for byte swapping for data. These are different from the 7550 other entry points, since they don't take a BFD as the first argument. 7551 Certain other handlers could do the same. */ 7552 bfd_uint64_t (*bfd_getx64) (const void *); 7553 bfd_int64_t (*bfd_getx_signed_64) (const void *); 7554 void (*bfd_putx64) (bfd_uint64_t, void *); 7555 bfd_vma (*bfd_getx32) (const void *); 7556 bfd_signed_vma (*bfd_getx_signed_32) (const void *); 7557 void (*bfd_putx32) (bfd_vma, void *); 7558 bfd_vma (*bfd_getx16) (const void *); 7559 bfd_signed_vma (*bfd_getx_signed_16) (const void *); 7560 void (*bfd_putx16) (bfd_vma, void *); 7561 7562 /* Byte swapping for the headers. */ 7563 bfd_uint64_t (*bfd_h_getx64) (const void *); 7564 bfd_int64_t (*bfd_h_getx_signed_64) (const void *); 7565 void (*bfd_h_putx64) (bfd_uint64_t, void *); 7566 bfd_vma (*bfd_h_getx32) (const void *); 7567 bfd_signed_vma (*bfd_h_getx_signed_32) (const void *); 7568 void (*bfd_h_putx32) (bfd_vma, void *); 7569 bfd_vma (*bfd_h_getx16) (const void *); 7570 bfd_signed_vma (*bfd_h_getx_signed_16) (const void *); 7571 void (*bfd_h_putx16) (bfd_vma, void *); 7572 7573 /* Format dependent routines: these are vectors of entry points 7574 within the target vector structure, one for each format to check. */ 7575 7576 /* Check the format of a file being read. Return a `bfd_target *' or zero. */ 7577 const struct bfd_target *(*_bfd_check_format[bfd_type_end]) (bfd *); 7578 7579 /* Set the format of a file being written. */ 7580 bfd_boolean (*_bfd_set_format[bfd_type_end]) (bfd *); 7581 7582 /* Write cached information into a file being written, at `bfd_close'. */ 7583 bfd_boolean (*_bfd_write_contents[bfd_type_end]) (bfd *); 7584 The general target vector. These vectors are initialized using the 7585BFD_JUMP_TABLE macros. 7586 7587 /* Generic entry points. */ 7588 #define BFD_JUMP_TABLE_GENERIC(NAME) \ 7589 NAME##_close_and_cleanup, \ 7590 NAME##_bfd_free_cached_info, \ 7591 NAME##_new_section_hook, \ 7592 NAME##_get_section_contents, \ 7593 NAME##_get_section_contents_in_window 7594 7595 /* Called when the BFD is being closed to do any necessary cleanup. */ 7596 bfd_boolean (*_close_and_cleanup) (bfd *); 7597 /* Ask the BFD to free all cached information. */ 7598 bfd_boolean (*_bfd_free_cached_info) (bfd *); 7599 /* Called when a new section is created. */ 7600 bfd_boolean (*_new_section_hook) (bfd *, sec_ptr); 7601 /* Read the contents of a section. */ 7602 bfd_boolean (*_bfd_get_section_contents) 7603 (bfd *, sec_ptr, void *, file_ptr, bfd_size_type); 7604 bfd_boolean (*_bfd_get_section_contents_in_window) 7605 (bfd *, sec_ptr, bfd_window *, file_ptr, bfd_size_type); 7606 7607 /* Entry points to copy private data. */ 7608 #define BFD_JUMP_TABLE_COPY(NAME) \ 7609 NAME##_bfd_copy_private_bfd_data, \ 7610 NAME##_bfd_merge_private_bfd_data, \ 7611 _bfd_generic_init_private_section_data, \ 7612 NAME##_bfd_copy_private_section_data, \ 7613 NAME##_bfd_copy_private_symbol_data, \ 7614 NAME##_bfd_copy_private_header_data, \ 7615 NAME##_bfd_set_private_flags, \ 7616 NAME##_bfd_print_private_bfd_data 7617 7618 /* Called to copy BFD general private data from one object file 7619 to another. */ 7620 bfd_boolean (*_bfd_copy_private_bfd_data) (bfd *, bfd *); 7621 /* Called to merge BFD general private data from one object file 7622 to a common output file when linking. */ 7623 bfd_boolean (*_bfd_merge_private_bfd_data) (bfd *, bfd *); 7624 /* Called to initialize BFD private section data from one object file 7625 to another. */ 7626 #define bfd_init_private_section_data(ibfd, isec, obfd, osec, link_info) \ 7627 BFD_SEND (obfd, _bfd_init_private_section_data, (ibfd, isec, obfd, osec, link_info)) 7628 bfd_boolean (*_bfd_init_private_section_data) 7629 (bfd *, sec_ptr, bfd *, sec_ptr, struct bfd_link_info *); 7630 /* Called to copy BFD private section data from one object file 7631 to another. */ 7632 bfd_boolean (*_bfd_copy_private_section_data) 7633 (bfd *, sec_ptr, bfd *, sec_ptr); 7634 /* Called to copy BFD private symbol data from one symbol 7635 to another. */ 7636 bfd_boolean (*_bfd_copy_private_symbol_data) 7637 (bfd *, asymbol *, bfd *, asymbol *); 7638 /* Called to copy BFD private header data from one object file 7639 to another. */ 7640 bfd_boolean (*_bfd_copy_private_header_data) 7641 (bfd *, bfd *); 7642 /* Called to set private backend flags. */ 7643 bfd_boolean (*_bfd_set_private_flags) (bfd *, flagword); 7644 7645 /* Called to print private BFD data. */ 7646 bfd_boolean (*_bfd_print_private_bfd_data) (bfd *, void *); 7647 7648 /* Core file entry points. */ 7649 #define BFD_JUMP_TABLE_CORE(NAME) \ 7650 NAME##_core_file_failing_command, \ 7651 NAME##_core_file_failing_signal, \ 7652 NAME##_core_file_matches_executable_p, \ 7653 NAME##_core_file_pid 7654 7655 char * (*_core_file_failing_command) (bfd *); 7656 int (*_core_file_failing_signal) (bfd *); 7657 bfd_boolean (*_core_file_matches_executable_p) (bfd *, bfd *); 7658 int (*_core_file_pid) (bfd *); 7659 7660 /* Archive entry points. */ 7661 #define BFD_JUMP_TABLE_ARCHIVE(NAME) \ 7662 NAME##_slurp_armap, \ 7663 NAME##_slurp_extended_name_table, \ 7664 NAME##_construct_extended_name_table, \ 7665 NAME##_truncate_arname, \ 7666 NAME##_write_armap, \ 7667 NAME##_read_ar_hdr, \ 7668 NAME##_write_ar_hdr, \ 7669 NAME##_openr_next_archived_file, \ 7670 NAME##_get_elt_at_index, \ 7671 NAME##_generic_stat_arch_elt, \ 7672 NAME##_update_armap_timestamp 7673 7674 bfd_boolean (*_bfd_slurp_armap) (bfd *); 7675 bfd_boolean (*_bfd_slurp_extended_name_table) (bfd *); 7676 bfd_boolean (*_bfd_construct_extended_name_table) 7677 (bfd *, char **, bfd_size_type *, const char **); 7678 void (*_bfd_truncate_arname) (bfd *, const char *, char *); 7679 bfd_boolean (*write_armap) 7680 (bfd *, unsigned int, struct orl *, unsigned int, int); 7681 void * (*_bfd_read_ar_hdr_fn) (bfd *); 7682 bfd_boolean (*_bfd_write_ar_hdr_fn) (bfd *, bfd *); 7683 bfd * (*openr_next_archived_file) (bfd *, bfd *); 7684 #define bfd_get_elt_at_index(b,i) BFD_SEND (b, _bfd_get_elt_at_index, (b,i)) 7685 bfd * (*_bfd_get_elt_at_index) (bfd *, symindex); 7686 int (*_bfd_stat_arch_elt) (bfd *, struct stat *); 7687 bfd_boolean (*_bfd_update_armap_timestamp) (bfd *); 7688 7689 /* Entry points used for symbols. */ 7690 #define BFD_JUMP_TABLE_SYMBOLS(NAME) \ 7691 NAME##_get_symtab_upper_bound, \ 7692 NAME##_canonicalize_symtab, \ 7693 NAME##_make_empty_symbol, \ 7694 NAME##_print_symbol, \ 7695 NAME##_get_symbol_info, \ 7696 NAME##_get_symbol_version_string, \ 7697 NAME##_bfd_is_local_label_name, \ 7698 NAME##_bfd_is_target_special_symbol, \ 7699 NAME##_get_lineno, \ 7700 NAME##_find_nearest_line, \ 7701 NAME##_find_line, \ 7702 NAME##_find_inliner_info, \ 7703 NAME##_bfd_make_debug_symbol, \ 7704 NAME##_read_minisymbols, \ 7705 NAME##_minisymbol_to_symbol 7706 7707 long (*_bfd_get_symtab_upper_bound) (bfd *); 7708 long (*_bfd_canonicalize_symtab) 7709 (bfd *, struct bfd_symbol **); 7710 struct bfd_symbol * 7711 (*_bfd_make_empty_symbol) (bfd *); 7712 void (*_bfd_print_symbol) 7713 (bfd *, void *, struct bfd_symbol *, bfd_print_symbol_type); 7714 #define bfd_print_symbol(b,p,s,e) BFD_SEND (b, _bfd_print_symbol, (b,p,s,e)) 7715 void (*_bfd_get_symbol_info) 7716 (bfd *, struct bfd_symbol *, symbol_info *); 7717 #define bfd_get_symbol_info(b,p,e) BFD_SEND (b, _bfd_get_symbol_info, (b,p,e)) 7718 const char *(*_bfd_get_symbol_version_string) 7719 (bfd *, struct bfd_symbol *, bfd_boolean *); 7720 #define bfd_get_symbol_version_string(b,s,h) BFD_SEND (b, _bfd_get_symbol_version_string, (b,s,h)) 7721 bfd_boolean (*_bfd_is_local_label_name) (bfd *, const char *); 7722 bfd_boolean (*_bfd_is_target_special_symbol) (bfd *, asymbol *); 7723 alent * (*_get_lineno) (bfd *, struct bfd_symbol *); 7724 bfd_boolean (*_bfd_find_nearest_line) 7725 (bfd *, struct bfd_symbol **, struct bfd_section *, bfd_vma, 7726 const char **, const char **, unsigned int *, unsigned int *); 7727 bfd_boolean (*_bfd_find_line) 7728 (bfd *, struct bfd_symbol **, struct bfd_symbol *, 7729 const char **, unsigned int *); 7730 bfd_boolean (*_bfd_find_inliner_info) 7731 (bfd *, const char **, const char **, unsigned int *); 7732 /* Back-door to allow format-aware applications to create debug symbols 7733 while using BFD for everything else. Currently used by the assembler 7734 when creating COFF files. */ 7735 asymbol * (*_bfd_make_debug_symbol) 7736 (bfd *, void *, unsigned long size); 7737 #define bfd_read_minisymbols(b, d, m, s) \ 7738 BFD_SEND (b, _read_minisymbols, (b, d, m, s)) 7739 long (*_read_minisymbols) 7740 (bfd *, bfd_boolean, void **, unsigned int *); 7741 #define bfd_minisymbol_to_symbol(b, d, m, f) \ 7742 BFD_SEND (b, _minisymbol_to_symbol, (b, d, m, f)) 7743 asymbol * (*_minisymbol_to_symbol) 7744 (bfd *, bfd_boolean, const void *, asymbol *); 7745 7746 /* Routines for relocs. */ 7747 #define BFD_JUMP_TABLE_RELOCS(NAME) \ 7748 NAME##_get_reloc_upper_bound, \ 7749 NAME##_canonicalize_reloc, \ 7750 NAME##_bfd_reloc_type_lookup, \ 7751 NAME##_bfd_reloc_name_lookup 7752 7753 long (*_get_reloc_upper_bound) (bfd *, sec_ptr); 7754 long (*_bfd_canonicalize_reloc) 7755 (bfd *, sec_ptr, arelent **, struct bfd_symbol **); 7756 /* See documentation on reloc types. */ 7757 reloc_howto_type * 7758 (*reloc_type_lookup) (bfd *, bfd_reloc_code_real_type); 7759 reloc_howto_type * 7760 (*reloc_name_lookup) (bfd *, const char *); 7761 7762 7763 /* Routines used when writing an object file. */ 7764 #define BFD_JUMP_TABLE_WRITE(NAME) \ 7765 NAME##_set_arch_mach, \ 7766 NAME##_set_section_contents 7767 7768 bfd_boolean (*_bfd_set_arch_mach) 7769 (bfd *, enum bfd_architecture, unsigned long); 7770 bfd_boolean (*_bfd_set_section_contents) 7771 (bfd *, sec_ptr, const void *, file_ptr, bfd_size_type); 7772 7773 /* Routines used by the linker. */ 7774 #define BFD_JUMP_TABLE_LINK(NAME) \ 7775 NAME##_sizeof_headers, \ 7776 NAME##_bfd_get_relocated_section_contents, \ 7777 NAME##_bfd_relax_section, \ 7778 NAME##_bfd_link_hash_table_create, \ 7779 NAME##_bfd_link_add_symbols, \ 7780 NAME##_bfd_link_just_syms, \ 7781 NAME##_bfd_copy_link_hash_symbol_type, \ 7782 NAME##_bfd_final_link, \ 7783 NAME##_bfd_link_split_section, \ 7784 NAME##_bfd_link_check_relocs, \ 7785 NAME##_bfd_gc_sections, \ 7786 NAME##_bfd_lookup_section_flags, \ 7787 NAME##_bfd_merge_sections, \ 7788 NAME##_bfd_is_group_section, \ 7789 NAME##_bfd_discard_group, \ 7790 NAME##_section_already_linked, \ 7791 NAME##_bfd_define_common_symbol 7792 7793 int (*_bfd_sizeof_headers) (bfd *, struct bfd_link_info *); 7794 bfd_byte * (*_bfd_get_relocated_section_contents) 7795 (bfd *, struct bfd_link_info *, struct bfd_link_order *, 7796 bfd_byte *, bfd_boolean, struct bfd_symbol **); 7797 7798 bfd_boolean (*_bfd_relax_section) 7799 (bfd *, struct bfd_section *, struct bfd_link_info *, bfd_boolean *); 7800 7801 /* Create a hash table for the linker. Different backends store 7802 different information in this table. */ 7803 struct bfd_link_hash_table * 7804 (*_bfd_link_hash_table_create) (bfd *); 7805 7806 /* Add symbols from this object file into the hash table. */ 7807 bfd_boolean (*_bfd_link_add_symbols) (bfd *, struct bfd_link_info *); 7808 7809 /* Indicate that we are only retrieving symbol values from this section. */ 7810 void (*_bfd_link_just_syms) (asection *, struct bfd_link_info *); 7811 7812 /* Copy the symbol type and other attributes for a linker script 7813 assignment of one symbol to another. */ 7814 #define bfd_copy_link_hash_symbol_type(b, t, f) \ 7815 BFD_SEND (b, _bfd_copy_link_hash_symbol_type, (b, t, f)) 7816 void (*_bfd_copy_link_hash_symbol_type) 7817 (bfd *, struct bfd_link_hash_entry *, struct bfd_link_hash_entry *); 7818 7819 /* Do a link based on the link_order structures attached to each 7820 section of the BFD. */ 7821 bfd_boolean (*_bfd_final_link) (bfd *, struct bfd_link_info *); 7822 7823 /* Should this section be split up into smaller pieces during linking. */ 7824 bfd_boolean (*_bfd_link_split_section) (bfd *, struct bfd_section *); 7825 7826 /* Check the relocations in the bfd for validity. */ 7827 bfd_boolean (* _bfd_link_check_relocs)(bfd *, struct bfd_link_info *); 7828 7829 /* Remove sections that are not referenced from the output. */ 7830 bfd_boolean (*_bfd_gc_sections) (bfd *, struct bfd_link_info *); 7831 7832 /* Sets the bitmask of allowed and disallowed section flags. */ 7833 bfd_boolean (*_bfd_lookup_section_flags) (struct bfd_link_info *, 7834 struct flag_info *, 7835 asection *); 7836 7837 /* Attempt to merge SEC_MERGE sections. */ 7838 bfd_boolean (*_bfd_merge_sections) (bfd *, struct bfd_link_info *); 7839 7840 /* Is this section a member of a group? */ 7841 bfd_boolean (*_bfd_is_group_section) (bfd *, const struct bfd_section *); 7842 7843 /* Discard members of a group. */ 7844 bfd_boolean (*_bfd_discard_group) (bfd *, struct bfd_section *); 7845 7846 /* Check if SEC has been already linked during a reloceatable or 7847 final link. */ 7848 bfd_boolean (*_section_already_linked) (bfd *, asection *, 7849 struct bfd_link_info *); 7850 7851 /* Define a common symbol. */ 7852 bfd_boolean (*_bfd_define_common_symbol) (bfd *, struct bfd_link_info *, 7853 struct bfd_link_hash_entry *); 7854 7855 /* Routines to handle dynamic symbols and relocs. */ 7856 #define BFD_JUMP_TABLE_DYNAMIC(NAME) \ 7857 NAME##_get_dynamic_symtab_upper_bound, \ 7858 NAME##_canonicalize_dynamic_symtab, \ 7859 NAME##_get_synthetic_symtab, \ 7860 NAME##_get_dynamic_reloc_upper_bound, \ 7861 NAME##_canonicalize_dynamic_reloc 7862 7863 /* Get the amount of memory required to hold the dynamic symbols. */ 7864 long (*_bfd_get_dynamic_symtab_upper_bound) (bfd *); 7865 /* Read in the dynamic symbols. */ 7866 long (*_bfd_canonicalize_dynamic_symtab) 7867 (bfd *, struct bfd_symbol **); 7868 /* Create synthetized symbols. */ 7869 long (*_bfd_get_synthetic_symtab) 7870 (bfd *, long, struct bfd_symbol **, long, struct bfd_symbol **, 7871 struct bfd_symbol **); 7872 /* Get the amount of memory required to hold the dynamic relocs. */ 7873 long (*_bfd_get_dynamic_reloc_upper_bound) (bfd *); 7874 /* Read in the dynamic relocs. */ 7875 long (*_bfd_canonicalize_dynamic_reloc) 7876 (bfd *, arelent **, struct bfd_symbol **); 7877 A pointer to an alternative bfd_target in case the current one is not 7878satisfactory. This can happen when the target cpu supports both big 7879and little endian code, and target chosen by the linker has the wrong 7880endianness. The function open_output() in ld/ldlang.c uses this field 7881to find an alternative output format that is suitable. 7882 /* Opposite endian version of this target. */ 7883 const struct bfd_target * alternative_target; 7884 7885 /* Data for use by back-end routines, which isn't 7886 generic enough to belong in this structure. */ 7887 const void *backend_data; 7888 7889 } bfd_target; 7890 78912.12.1.1 `bfd_set_default_target' 7892................................. 7893 7894*Synopsis* 7895 bfd_boolean bfd_set_default_target (const char *name); 7896 *Description* 7897Set the default target vector to use when recognizing a BFD. This 7898takes the name of the target, which may be a BFD target name or a 7899configuration triplet. 7900 79012.12.1.2 `bfd_find_target' 7902.......................... 7903 7904*Synopsis* 7905 const bfd_target *bfd_find_target (const char *target_name, bfd *abfd); 7906 *Description* 7907Return a pointer to the transfer vector for the object target named 7908TARGET_NAME. If TARGET_NAME is `NULL', choose the one in the 7909environment variable `GNUTARGET'; if that is null or not defined, then 7910choose the first entry in the target list. Passing in the string 7911"default" or setting the environment variable to "default" will cause 7912the first entry in the target list to be returned, and 7913"target_defaulted" will be set in the BFD if ABFD isn't `NULL'. This 7914causes `bfd_check_format' to loop over all the targets to find the one 7915that matches the file being read. 7916 79172.12.1.3 `bfd_get_target_info' 7918.............................. 7919 7920*Synopsis* 7921 const bfd_target *bfd_get_target_info (const char *target_name, 7922 bfd *abfd, 7923 bfd_boolean *is_bigendian, 7924 int *underscoring, 7925 const char **def_target_arch); 7926 *Description* 7927Return a pointer to the transfer vector for the object target named 7928TARGET_NAME. If TARGET_NAME is `NULL', choose the one in the 7929environment variable `GNUTARGET'; if that is null or not defined, then 7930choose the first entry in the target list. Passing in the string 7931"default" or setting the environment variable to "default" will cause 7932the first entry in the target list to be returned, and 7933"target_defaulted" will be set in the BFD if ABFD isn't `NULL'. This 7934causes `bfd_check_format' to loop over all the targets to find the one 7935that matches the file being read. If IS_BIGENDIAN is not `NULL', then 7936set this value to target's endian mode. True for big-endian, FALSE for 7937little-endian or for invalid target. If UNDERSCORING is not `NULL', 7938then set this value to target's underscoring mode. Zero for 7939none-underscoring, -1 for invalid target, else the value of target 7940vector's symbol underscoring. If DEF_TARGET_ARCH is not `NULL', then 7941set it to the architecture string specified by the target_name. 7942 79432.12.1.4 `bfd_target_list' 7944.......................... 7945 7946*Synopsis* 7947 const char ** bfd_target_list (void); 7948 *Description* 7949Return a freshly malloced NULL-terminated vector of the names of all 7950the valid BFD targets. Do not modify the names. 7951 79522.12.1.5 `bfd_seach_for_target' 7953............................... 7954 7955*Synopsis* 7956 const bfd_target *bfd_search_for_target 7957 (int (*search_func) (const bfd_target *, void *), 7958 void *); 7959 *Description* 7960Return a pointer to the first transfer vector in the list of transfer 7961vectors maintained by BFD that produces a non-zero result when passed 7962to the function SEARCH_FUNC. The parameter DATA is passed, unexamined, 7963to the search function. 7964 79652.12.1.6 `bfd_flavour_name' 7966........................... 7967 7968*Synopsis* 7969 const char *bfd_flavour_name (enum bfd_flavour flavour); 7970 *Description* 7971Return the string form of FLAVOUR. 7972 7973 7974File: bfd.info, Node: Architectures, Next: Opening and Closing, Prev: Targets, Up: BFD front end 7975 79762.13 Architectures 7977================== 7978 7979BFD keeps one atom in a BFD describing the architecture of the data 7980attached to the BFD: a pointer to a `bfd_arch_info_type'. 7981 7982 Pointers to structures can be requested independently of a BFD so 7983that an architecture's information can be interrogated without access 7984to an open BFD. 7985 7986 The architecture information is provided by each architecture 7987package. The set of default architectures is selected by the macro 7988`SELECT_ARCHITECTURES'. This is normally set up in the 7989`config/TARGET.mt' file of your choice. If the name is not defined, 7990then all the architectures supported are included. 7991 7992 When BFD starts up, all the architectures are called with an 7993initialize method. It is up to the architecture back end to insert as 7994many items into the list of architectures as it wants to; generally 7995this would be one for each machine and one for the default case (an 7996item with a machine field of 0). 7997 7998 BFD's idea of an architecture is implemented in `archures.c'. 7999 80002.13.1 bfd_architecture 8001----------------------- 8002 8003*Description* 8004This enum gives the object file's CPU architecture, in a global 8005sense--i.e., what processor family does it belong to? Another field 8006indicates which processor within the family is in use. The machine 8007gives a number which distinguishes different versions of the 8008architecture, containing, for example, 2 and 3 for Intel i960 KA and 8009i960 KB, and 68020 and 68030 for Motorola 68020 and 68030. 8010 enum bfd_architecture 8011 { 8012 bfd_arch_unknown, /* File arch not known. */ 8013 bfd_arch_obscure, /* Arch known, not one of these. */ 8014 bfd_arch_m68k, /* Motorola 68xxx */ 8015 #define bfd_mach_m68000 1 8016 #define bfd_mach_m68008 2 8017 #define bfd_mach_m68010 3 8018 #define bfd_mach_m68020 4 8019 #define bfd_mach_m68030 5 8020 #define bfd_mach_m68040 6 8021 #define bfd_mach_m68060 7 8022 #define bfd_mach_cpu32 8 8023 #define bfd_mach_fido 9 8024 #define bfd_mach_mcf_isa_a_nodiv 10 8025 #define bfd_mach_mcf_isa_a 11 8026 #define bfd_mach_mcf_isa_a_mac 12 8027 #define bfd_mach_mcf_isa_a_emac 13 8028 #define bfd_mach_mcf_isa_aplus 14 8029 #define bfd_mach_mcf_isa_aplus_mac 15 8030 #define bfd_mach_mcf_isa_aplus_emac 16 8031 #define bfd_mach_mcf_isa_b_nousp 17 8032 #define bfd_mach_mcf_isa_b_nousp_mac 18 8033 #define bfd_mach_mcf_isa_b_nousp_emac 19 8034 #define bfd_mach_mcf_isa_b 20 8035 #define bfd_mach_mcf_isa_b_mac 21 8036 #define bfd_mach_mcf_isa_b_emac 22 8037 #define bfd_mach_mcf_isa_b_float 23 8038 #define bfd_mach_mcf_isa_b_float_mac 24 8039 #define bfd_mach_mcf_isa_b_float_emac 25 8040 #define bfd_mach_mcf_isa_c 26 8041 #define bfd_mach_mcf_isa_c_mac 27 8042 #define bfd_mach_mcf_isa_c_emac 28 8043 #define bfd_mach_mcf_isa_c_nodiv 29 8044 #define bfd_mach_mcf_isa_c_nodiv_mac 30 8045 #define bfd_mach_mcf_isa_c_nodiv_emac 31 8046 bfd_arch_vax, /* DEC Vax */ 8047 bfd_arch_i960, /* Intel 960 */ 8048 /* The order of the following is important. 8049 lower number indicates a machine type that 8050 only accepts a subset of the instructions 8051 available to machines with higher numbers. 8052 The exception is the "ca", which is 8053 incompatible with all other machines except 8054 "core". */ 8055 8056 #define bfd_mach_i960_core 1 8057 #define bfd_mach_i960_ka_sa 2 8058 #define bfd_mach_i960_kb_sb 3 8059 #define bfd_mach_i960_mc 4 8060 #define bfd_mach_i960_xa 5 8061 #define bfd_mach_i960_ca 6 8062 #define bfd_mach_i960_jx 7 8063 #define bfd_mach_i960_hx 8 8064 8065 bfd_arch_or1k, /* OpenRISC 1000 */ 8066 #define bfd_mach_or1k 1 8067 #define bfd_mach_or1knd 2 8068 8069 bfd_arch_sparc, /* SPARC */ 8070 #define bfd_mach_sparc 1 8071 /* The difference between v8plus and v9 is that v9 is a true 64 bit env. */ 8072 #define bfd_mach_sparc_sparclet 2 8073 #define bfd_mach_sparc_sparclite 3 8074 #define bfd_mach_sparc_v8plus 4 8075 #define bfd_mach_sparc_v8plusa 5 /* with ultrasparc add'ns. */ 8076 #define bfd_mach_sparc_sparclite_le 6 8077 #define bfd_mach_sparc_v9 7 8078 #define bfd_mach_sparc_v9a 8 /* with ultrasparc add'ns. */ 8079 #define bfd_mach_sparc_v8plusb 9 /* with cheetah add'ns. */ 8080 #define bfd_mach_sparc_v9b 10 /* with cheetah add'ns. */ 8081 #define bfd_mach_sparc_v8plusc 11 /* with UA2005 and T1 add'ns. */ 8082 #define bfd_mach_sparc_v9c 12 /* with UA2005 and T1 add'ns. */ 8083 #define bfd_mach_sparc_v8plusd 13 /* with UA2007 and T3 add'ns. */ 8084 #define bfd_mach_sparc_v9d 14 /* with UA2007 and T3 add'ns. */ 8085 #define bfd_mach_sparc_v8pluse 15 /* with OSA2001 and T4 add'ns (no IMA). */ 8086 #define bfd_mach_sparc_v9e 16 /* with OSA2001 and T4 add'ns (no IMA). */ 8087 #define bfd_mach_sparc_v8plusv 17 /* with OSA2011 and T4 and IMA and FJMAU add'ns. */ 8088 #define bfd_mach_sparc_v9v 18 /* with OSA2011 and T4 and IMA and FJMAU add'ns. */ 8089 #define bfd_mach_sparc_v8plusm 19 /* with OSA2015 and M7 add'ns. */ 8090 #define bfd_mach_sparc_v9m 20 /* with OSA2015 and M7 add'ns. */ 8091 /* Nonzero if MACH has the v9 instruction set. */ 8092 #define bfd_mach_sparc_v9_p(mach) \ 8093 ((mach) >= bfd_mach_sparc_v8plus && (mach) <= bfd_mach_sparc_v9m \ 8094 && (mach) != bfd_mach_sparc_sparclite_le) 8095 /* Nonzero if MACH is a 64 bit sparc architecture. */ 8096 #define bfd_mach_sparc_64bit_p(mach) \ 8097 ((mach) >= bfd_mach_sparc_v9 \ 8098 && (mach) != bfd_mach_sparc_v8plusb \ 8099 && (mach) != bfd_mach_sparc_v8plusc \ 8100 && (mach) != bfd_mach_sparc_v8plusd \ 8101 && (mach) != bfd_mach_sparc_v8pluse \ 8102 && (mach) != bfd_mach_sparc_v8plusv \ 8103 && (mach) != bfd_mach_sparc_v8plusm) 8104 bfd_arch_spu, /* PowerPC SPU */ 8105 #define bfd_mach_spu 256 8106 bfd_arch_mips, /* MIPS Rxxxx */ 8107 #define bfd_mach_mips3000 3000 8108 #define bfd_mach_mips3900 3900 8109 #define bfd_mach_mips4000 4000 8110 #define bfd_mach_mips4010 4010 8111 #define bfd_mach_mips4100 4100 8112 #define bfd_mach_mips4111 4111 8113 #define bfd_mach_mips4120 4120 8114 #define bfd_mach_mips4300 4300 8115 #define bfd_mach_mips4400 4400 8116 #define bfd_mach_mips4600 4600 8117 #define bfd_mach_mips4650 4650 8118 #define bfd_mach_mips5000 5000 8119 #define bfd_mach_mips5400 5400 8120 #define bfd_mach_mips5500 5500 8121 #define bfd_mach_mips5900 5900 8122 #define bfd_mach_mips6000 6000 8123 #define bfd_mach_mips7000 7000 8124 #define bfd_mach_mips8000 8000 8125 #define bfd_mach_mips9000 9000 8126 #define bfd_mach_mips10000 10000 8127 #define bfd_mach_mips12000 12000 8128 #define bfd_mach_mips14000 14000 8129 #define bfd_mach_mips16000 16000 8130 #define bfd_mach_mips16 16 8131 #define bfd_mach_mips5 5 8132 #define bfd_mach_mips_loongson_2e 3001 8133 #define bfd_mach_mips_loongson_2f 3002 8134 #define bfd_mach_mips_loongson_3a 3003 8135 #define bfd_mach_mips_sb1 12310201 /* octal 'SB', 01 */ 8136 #define bfd_mach_mips_octeon 6501 8137 #define bfd_mach_mips_octeonp 6601 8138 #define bfd_mach_mips_octeon2 6502 8139 #define bfd_mach_mips_octeon3 6503 8140 #define bfd_mach_mips_xlr 887682 /* decimal 'XLR' */ 8141 #define bfd_mach_mipsisa32 32 8142 #define bfd_mach_mipsisa32r2 33 8143 #define bfd_mach_mipsisa32r3 34 8144 #define bfd_mach_mipsisa32r5 36 8145 #define bfd_mach_mipsisa32r6 37 8146 #define bfd_mach_mipsisa64 64 8147 #define bfd_mach_mipsisa64r2 65 8148 #define bfd_mach_mipsisa64r3 66 8149 #define bfd_mach_mipsisa64r5 68 8150 #define bfd_mach_mipsisa64r6 69 8151 #define bfd_mach_mips_micromips 96 8152 bfd_arch_i386, /* Intel 386 */ 8153 #define bfd_mach_i386_intel_syntax (1 << 0) 8154 #define bfd_mach_i386_i8086 (1 << 1) 8155 #define bfd_mach_i386_i386 (1 << 2) 8156 #define bfd_mach_x86_64 (1 << 3) 8157 #define bfd_mach_x64_32 (1 << 4) 8158 #define bfd_mach_i386_i386_intel_syntax (bfd_mach_i386_i386 | bfd_mach_i386_intel_syntax) 8159 #define bfd_mach_x86_64_intel_syntax (bfd_mach_x86_64 | bfd_mach_i386_intel_syntax) 8160 #define bfd_mach_x64_32_intel_syntax (bfd_mach_x64_32 | bfd_mach_i386_intel_syntax) 8161 bfd_arch_l1om, /* Intel L1OM */ 8162 #define bfd_mach_l1om (1 << 5) 8163 #define bfd_mach_l1om_intel_syntax (bfd_mach_l1om | bfd_mach_i386_intel_syntax) 8164 bfd_arch_k1om, /* Intel K1OM */ 8165 #define bfd_mach_k1om (1 << 6) 8166 #define bfd_mach_k1om_intel_syntax (bfd_mach_k1om | bfd_mach_i386_intel_syntax) 8167 #define bfd_mach_i386_nacl (1 << 7) 8168 #define bfd_mach_i386_i386_nacl (bfd_mach_i386_i386 | bfd_mach_i386_nacl) 8169 #define bfd_mach_x86_64_nacl (bfd_mach_x86_64 | bfd_mach_i386_nacl) 8170 #define bfd_mach_x64_32_nacl (bfd_mach_x64_32 | bfd_mach_i386_nacl) 8171 bfd_arch_iamcu, /* Intel MCU */ 8172 #define bfd_mach_iamcu (1 << 8) 8173 #define bfd_mach_i386_iamcu (bfd_mach_i386_i386 | bfd_mach_iamcu) 8174 #define bfd_mach_i386_iamcu_intel_syntax (bfd_mach_i386_iamcu | bfd_mach_i386_intel_syntax) 8175 bfd_arch_we32k, /* AT&T WE32xxx */ 8176 bfd_arch_tahoe, /* CCI/Harris Tahoe */ 8177 bfd_arch_i860, /* Intel 860 */ 8178 bfd_arch_i370, /* IBM 360/370 Mainframes */ 8179 bfd_arch_romp, /* IBM ROMP PC/RT */ 8180 bfd_arch_convex, /* Convex */ 8181 bfd_arch_m88k, /* Motorola 88xxx */ 8182 bfd_arch_m98k, /* Motorola 98xxx */ 8183 bfd_arch_pyramid, /* Pyramid Technology */ 8184 bfd_arch_h8300, /* Renesas H8/300 (formerly Hitachi H8/300) */ 8185 #define bfd_mach_h8300 1 8186 #define bfd_mach_h8300h 2 8187 #define bfd_mach_h8300s 3 8188 #define bfd_mach_h8300hn 4 8189 #define bfd_mach_h8300sn 5 8190 #define bfd_mach_h8300sx 6 8191 #define bfd_mach_h8300sxn 7 8192 bfd_arch_pdp11, /* DEC PDP-11 */ 8193 bfd_arch_plugin, 8194 bfd_arch_powerpc, /* PowerPC */ 8195 #define bfd_mach_ppc 32 8196 #define bfd_mach_ppc64 64 8197 #define bfd_mach_ppc_403 403 8198 #define bfd_mach_ppc_403gc 4030 8199 #define bfd_mach_ppc_405 405 8200 #define bfd_mach_ppc_505 505 8201 #define bfd_mach_ppc_601 601 8202 #define bfd_mach_ppc_602 602 8203 #define bfd_mach_ppc_603 603 8204 #define bfd_mach_ppc_ec603e 6031 8205 #define bfd_mach_ppc_604 604 8206 #define bfd_mach_ppc_620 620 8207 #define bfd_mach_ppc_630 630 8208 #define bfd_mach_ppc_750 750 8209 #define bfd_mach_ppc_860 860 8210 #define bfd_mach_ppc_a35 35 8211 #define bfd_mach_ppc_rs64ii 642 8212 #define bfd_mach_ppc_rs64iii 643 8213 #define bfd_mach_ppc_7400 7400 8214 #define bfd_mach_ppc_e500 500 8215 #define bfd_mach_ppc_e500mc 5001 8216 #define bfd_mach_ppc_e500mc64 5005 8217 #define bfd_mach_ppc_e5500 5006 8218 #define bfd_mach_ppc_e6500 5007 8219 #define bfd_mach_ppc_titan 83 8220 #define bfd_mach_ppc_vle 84 8221 bfd_arch_rs6000, /* IBM RS/6000 */ 8222 #define bfd_mach_rs6k 6000 8223 #define bfd_mach_rs6k_rs1 6001 8224 #define bfd_mach_rs6k_rsc 6003 8225 #define bfd_mach_rs6k_rs2 6002 8226 bfd_arch_hppa, /* HP PA RISC */ 8227 #define bfd_mach_hppa10 10 8228 #define bfd_mach_hppa11 11 8229 #define bfd_mach_hppa20 20 8230 #define bfd_mach_hppa20w 25 8231 bfd_arch_d10v, /* Mitsubishi D10V */ 8232 #define bfd_mach_d10v 1 8233 #define bfd_mach_d10v_ts2 2 8234 #define bfd_mach_d10v_ts3 3 8235 bfd_arch_d30v, /* Mitsubishi D30V */ 8236 bfd_arch_dlx, /* DLX */ 8237 bfd_arch_m68hc11, /* Motorola 68HC11 */ 8238 bfd_arch_m68hc12, /* Motorola 68HC12 */ 8239 #define bfd_mach_m6812_default 0 8240 #define bfd_mach_m6812 1 8241 #define bfd_mach_m6812s 2 8242 bfd_arch_m9s12x, /* Freescale S12X */ 8243 bfd_arch_m9s12xg, /* Freescale XGATE */ 8244 bfd_arch_z8k, /* Zilog Z8000 */ 8245 #define bfd_mach_z8001 1 8246 #define bfd_mach_z8002 2 8247 bfd_arch_h8500, /* Renesas H8/500 (formerly Hitachi H8/500) */ 8248 bfd_arch_sh, /* Renesas / SuperH SH (formerly Hitachi SH) */ 8249 #define bfd_mach_sh 1 8250 #define bfd_mach_sh2 0x20 8251 #define bfd_mach_sh_dsp 0x2d 8252 #define bfd_mach_sh2a 0x2a 8253 #define bfd_mach_sh2a_nofpu 0x2b 8254 #define bfd_mach_sh2a_nofpu_or_sh4_nommu_nofpu 0x2a1 8255 #define bfd_mach_sh2a_nofpu_or_sh3_nommu 0x2a2 8256 #define bfd_mach_sh2a_or_sh4 0x2a3 8257 #define bfd_mach_sh2a_or_sh3e 0x2a4 8258 #define bfd_mach_sh2e 0x2e 8259 #define bfd_mach_sh3 0x30 8260 #define bfd_mach_sh3_nommu 0x31 8261 #define bfd_mach_sh3_dsp 0x3d 8262 #define bfd_mach_sh3e 0x3e 8263 #define bfd_mach_sh4 0x40 8264 #define bfd_mach_sh4_nofpu 0x41 8265 #define bfd_mach_sh4_nommu_nofpu 0x42 8266 #define bfd_mach_sh4a 0x4a 8267 #define bfd_mach_sh4a_nofpu 0x4b 8268 #define bfd_mach_sh4al_dsp 0x4d 8269 #define bfd_mach_sh5 0x50 8270 bfd_arch_alpha, /* Dec Alpha */ 8271 #define bfd_mach_alpha_ev4 0x10 8272 #define bfd_mach_alpha_ev5 0x20 8273 #define bfd_mach_alpha_ev6 0x30 8274 bfd_arch_arm, /* Advanced Risc Machines ARM. */ 8275 #define bfd_mach_arm_unknown 0 8276 #define bfd_mach_arm_2 1 8277 #define bfd_mach_arm_2a 2 8278 #define bfd_mach_arm_3 3 8279 #define bfd_mach_arm_3M 4 8280 #define bfd_mach_arm_4 5 8281 #define bfd_mach_arm_4T 6 8282 #define bfd_mach_arm_5 7 8283 #define bfd_mach_arm_5T 8 8284 #define bfd_mach_arm_5TE 9 8285 #define bfd_mach_arm_XScale 10 8286 #define bfd_mach_arm_ep9312 11 8287 #define bfd_mach_arm_iWMMXt 12 8288 #define bfd_mach_arm_iWMMXt2 13 8289 bfd_arch_nds32, /* Andes NDS32 */ 8290 #define bfd_mach_n1 1 8291 #define bfd_mach_n1h 2 8292 #define bfd_mach_n1h_v2 3 8293 #define bfd_mach_n1h_v3 4 8294 #define bfd_mach_n1h_v3m 5 8295 bfd_arch_ns32k, /* National Semiconductors ns32000 */ 8296 bfd_arch_w65, /* WDC 65816 */ 8297 bfd_arch_tic30, /* Texas Instruments TMS320C30 */ 8298 bfd_arch_tic4x, /* Texas Instruments TMS320C3X/4X */ 8299 #define bfd_mach_tic3x 30 8300 #define bfd_mach_tic4x 40 8301 bfd_arch_tic54x, /* Texas Instruments TMS320C54X */ 8302 bfd_arch_tic6x, /* Texas Instruments TMS320C6X */ 8303 bfd_arch_tic80, /* TI TMS320c80 (MVP) */ 8304 bfd_arch_v850, /* NEC V850 */ 8305 bfd_arch_v850_rh850,/* NEC V850 (using RH850 ABI) */ 8306 #define bfd_mach_v850 1 8307 #define bfd_mach_v850e 'E' 8308 #define bfd_mach_v850e1 '1' 8309 #define bfd_mach_v850e2 0x4532 8310 #define bfd_mach_v850e2v3 0x45325633 8311 #define bfd_mach_v850e3v5 0x45335635 /* ('E'|'3'|'V'|'5') */ 8312 bfd_arch_arc, /* ARC Cores */ 8313 #define bfd_mach_arc_a4 0 8314 #define bfd_mach_arc_a5 1 8315 #define bfd_mach_arc_arc600 2 8316 #define bfd_mach_arc_arc601 4 8317 #define bfd_mach_arc_arc700 3 8318 #define bfd_mach_arc_arcv2 5 8319 bfd_arch_m32c, /* Renesas M16C/M32C. */ 8320 #define bfd_mach_m16c 0x75 8321 #define bfd_mach_m32c 0x78 8322 bfd_arch_m32r, /* Renesas M32R (formerly Mitsubishi M32R/D) */ 8323 #define bfd_mach_m32r 1 /* For backwards compatibility. */ 8324 #define bfd_mach_m32rx 'x' 8325 #define bfd_mach_m32r2 '2' 8326 bfd_arch_mn10200, /* Matsushita MN10200 */ 8327 bfd_arch_mn10300, /* Matsushita MN10300 */ 8328 #define bfd_mach_mn10300 300 8329 #define bfd_mach_am33 330 8330 #define bfd_mach_am33_2 332 8331 bfd_arch_fr30, 8332 #define bfd_mach_fr30 0x46523330 8333 bfd_arch_frv, 8334 #define bfd_mach_frv 1 8335 #define bfd_mach_frvsimple 2 8336 #define bfd_mach_fr300 300 8337 #define bfd_mach_fr400 400 8338 #define bfd_mach_fr450 450 8339 #define bfd_mach_frvtomcat 499 /* fr500 prototype */ 8340 #define bfd_mach_fr500 500 8341 #define bfd_mach_fr550 550 8342 bfd_arch_moxie, /* The moxie processor */ 8343 #define bfd_mach_moxie 1 8344 bfd_arch_ft32, /* The ft32 processor */ 8345 #define bfd_mach_ft32 1 8346 bfd_arch_mcore, 8347 bfd_arch_mep, 8348 #define bfd_mach_mep 1 8349 #define bfd_mach_mep_h1 0x6831 8350 #define bfd_mach_mep_c5 0x6335 8351 bfd_arch_metag, 8352 #define bfd_mach_metag 1 8353 bfd_arch_ia64, /* HP/Intel ia64 */ 8354 #define bfd_mach_ia64_elf64 64 8355 #define bfd_mach_ia64_elf32 32 8356 bfd_arch_ip2k, /* Ubicom IP2K microcontrollers. */ 8357 #define bfd_mach_ip2022 1 8358 #define bfd_mach_ip2022ext 2 8359 bfd_arch_iq2000, /* Vitesse IQ2000. */ 8360 #define bfd_mach_iq2000 1 8361 #define bfd_mach_iq10 2 8362 bfd_arch_epiphany, /* Adapteva EPIPHANY */ 8363 #define bfd_mach_epiphany16 1 8364 #define bfd_mach_epiphany32 2 8365 bfd_arch_mt, 8366 #define bfd_mach_ms1 1 8367 #define bfd_mach_mrisc2 2 8368 #define bfd_mach_ms2 3 8369 bfd_arch_pj, 8370 bfd_arch_avr, /* Atmel AVR microcontrollers. */ 8371 #define bfd_mach_avr1 1 8372 #define bfd_mach_avr2 2 8373 #define bfd_mach_avr25 25 8374 #define bfd_mach_avr3 3 8375 #define bfd_mach_avr31 31 8376 #define bfd_mach_avr35 35 8377 #define bfd_mach_avr4 4 8378 #define bfd_mach_avr5 5 8379 #define bfd_mach_avr51 51 8380 #define bfd_mach_avr6 6 8381 #define bfd_mach_avrtiny 100 8382 #define bfd_mach_avrxmega1 101 8383 #define bfd_mach_avrxmega2 102 8384 #define bfd_mach_avrxmega3 103 8385 #define bfd_mach_avrxmega4 104 8386 #define bfd_mach_avrxmega5 105 8387 #define bfd_mach_avrxmega6 106 8388 #define bfd_mach_avrxmega7 107 8389 bfd_arch_bfin, /* ADI Blackfin */ 8390 #define bfd_mach_bfin 1 8391 bfd_arch_cr16, /* National Semiconductor CompactRISC (ie CR16). */ 8392 #define bfd_mach_cr16 1 8393 bfd_arch_cr16c, /* National Semiconductor CompactRISC. */ 8394 #define bfd_mach_cr16c 1 8395 bfd_arch_crx, /* National Semiconductor CRX. */ 8396 #define bfd_mach_crx 1 8397 bfd_arch_cris, /* Axis CRIS */ 8398 #define bfd_mach_cris_v0_v10 255 8399 #define bfd_mach_cris_v32 32 8400 #define bfd_mach_cris_v10_v32 1032 8401 bfd_arch_rl78, 8402 #define bfd_mach_rl78 0x75 8403 bfd_arch_rx, /* Renesas RX. */ 8404 #define bfd_mach_rx 0x75 8405 bfd_arch_s390, /* IBM s390 */ 8406 #define bfd_mach_s390_31 31 8407 #define bfd_mach_s390_64 64 8408 bfd_arch_score, /* Sunplus score */ 8409 #define bfd_mach_score3 3 8410 #define bfd_mach_score7 7 8411 bfd_arch_mmix, /* Donald Knuth's educational processor. */ 8412 bfd_arch_xstormy16, 8413 #define bfd_mach_xstormy16 1 8414 bfd_arch_msp430, /* Texas Instruments MSP430 architecture. */ 8415 #define bfd_mach_msp11 11 8416 #define bfd_mach_msp110 110 8417 #define bfd_mach_msp12 12 8418 #define bfd_mach_msp13 13 8419 #define bfd_mach_msp14 14 8420 #define bfd_mach_msp15 15 8421 #define bfd_mach_msp16 16 8422 #define bfd_mach_msp20 20 8423 #define bfd_mach_msp21 21 8424 #define bfd_mach_msp22 22 8425 #define bfd_mach_msp23 23 8426 #define bfd_mach_msp24 24 8427 #define bfd_mach_msp26 26 8428 #define bfd_mach_msp31 31 8429 #define bfd_mach_msp32 32 8430 #define bfd_mach_msp33 33 8431 #define bfd_mach_msp41 41 8432 #define bfd_mach_msp42 42 8433 #define bfd_mach_msp43 43 8434 #define bfd_mach_msp44 44 8435 #define bfd_mach_msp430x 45 8436 #define bfd_mach_msp46 46 8437 #define bfd_mach_msp47 47 8438 #define bfd_mach_msp54 54 8439 bfd_arch_xc16x, /* Infineon's XC16X Series. */ 8440 #define bfd_mach_xc16x 1 8441 #define bfd_mach_xc16xl 2 8442 #define bfd_mach_xc16xs 3 8443 bfd_arch_xgate, /* Freescale XGATE */ 8444 #define bfd_mach_xgate 1 8445 bfd_arch_xtensa, /* Tensilica's Xtensa cores. */ 8446 #define bfd_mach_xtensa 1 8447 bfd_arch_z80, 8448 #define bfd_mach_z80strict 1 /* No undocumented opcodes. */ 8449 #define bfd_mach_z80 3 /* With ixl, ixh, iyl, and iyh. */ 8450 #define bfd_mach_z80full 7 /* All undocumented instructions. */ 8451 #define bfd_mach_r800 11 /* R800: successor with multiplication. */ 8452 bfd_arch_lm32, /* Lattice Mico32 */ 8453 #define bfd_mach_lm32 1 8454 bfd_arch_microblaze,/* Xilinx MicroBlaze. */ 8455 bfd_arch_tilepro, /* Tilera TILEPro */ 8456 bfd_arch_tilegx, /* Tilera TILE-Gx */ 8457 #define bfd_mach_tilepro 1 8458 #define bfd_mach_tilegx 1 8459 #define bfd_mach_tilegx32 2 8460 bfd_arch_aarch64, /* AArch64 */ 8461 #define bfd_mach_aarch64 0 8462 #define bfd_mach_aarch64_ilp32 32 8463 bfd_arch_nios2, /* Nios II */ 8464 #define bfd_mach_nios2 0 8465 #define bfd_mach_nios2r1 1 8466 #define bfd_mach_nios2r2 2 8467 bfd_arch_visium, /* Visium */ 8468 #define bfd_mach_visium 1 8469 bfd_arch_last 8470 }; 8471 84722.13.2 bfd_arch_info 8473-------------------- 8474 8475*Description* 8476This structure contains information on architectures for use within BFD. 8477 8478 typedef struct bfd_arch_info 8479 { 8480 int bits_per_word; 8481 int bits_per_address; 8482 int bits_per_byte; 8483 enum bfd_architecture arch; 8484 unsigned long mach; 8485 const char *arch_name; 8486 const char *printable_name; 8487 unsigned int section_align_power; 8488 /* TRUE if this is the default machine for the architecture. 8489 The default arch should be the first entry for an arch so that 8490 all the entries for that arch can be accessed via `next'. */ 8491 bfd_boolean the_default; 8492 const struct bfd_arch_info * (*compatible) 8493 (const struct bfd_arch_info *a, const struct bfd_arch_info *b); 8494 8495 bfd_boolean (*scan) (const struct bfd_arch_info *, const char *); 8496 8497 /* Allocate via bfd_malloc and return a fill buffer of size COUNT. If 8498 IS_BIGENDIAN is TRUE, the order of bytes is big endian. If CODE is 8499 TRUE, the buffer contains code. */ 8500 void *(*fill) (bfd_size_type count, bfd_boolean is_bigendian, 8501 bfd_boolean code); 8502 8503 const struct bfd_arch_info *next; 8504 } 8505 bfd_arch_info_type; 8506 85072.13.2.1 `bfd_printable_name' 8508............................. 8509 8510*Synopsis* 8511 const char *bfd_printable_name (bfd *abfd); 8512 *Description* 8513Return a printable string representing the architecture and machine 8514from the pointer to the architecture info structure. 8515 85162.13.2.2 `bfd_scan_arch' 8517........................ 8518 8519*Synopsis* 8520 const bfd_arch_info_type *bfd_scan_arch (const char *string); 8521 *Description* 8522Figure out if BFD supports any cpu which could be described with the 8523name STRING. Return a pointer to an `arch_info' structure if a machine 8524is found, otherwise NULL. 8525 85262.13.2.3 `bfd_arch_list' 8527........................ 8528 8529*Synopsis* 8530 const char **bfd_arch_list (void); 8531 *Description* 8532Return a freshly malloced NULL-terminated vector of the names of all 8533the valid BFD architectures. Do not modify the names. 8534 85352.13.2.4 `bfd_arch_get_compatible' 8536.................................. 8537 8538*Synopsis* 8539 const bfd_arch_info_type *bfd_arch_get_compatible 8540 (const bfd *abfd, const bfd *bbfd, bfd_boolean accept_unknowns); 8541 *Description* 8542Determine whether two BFDs' architectures and machine types are 8543compatible. Calculates the lowest common denominator between the two 8544architectures and machine types implied by the BFDs and returns a 8545pointer to an `arch_info' structure describing the compatible machine. 8546 85472.13.2.5 `bfd_default_arch_struct' 8548.................................. 8549 8550*Description* 8551The `bfd_default_arch_struct' is an item of `bfd_arch_info_type' which 8552has been initialized to a fairly generic state. A BFD starts life by 8553pointing to this structure, until the correct back end has determined 8554the real architecture of the file. 8555 extern const bfd_arch_info_type bfd_default_arch_struct; 8556 85572.13.2.6 `bfd_set_arch_info' 8558............................ 8559 8560*Synopsis* 8561 void bfd_set_arch_info (bfd *abfd, const bfd_arch_info_type *arg); 8562 *Description* 8563Set the architecture info of ABFD to ARG. 8564 85652.13.2.7 `bfd_default_set_arch_mach' 8566.................................... 8567 8568*Synopsis* 8569 bfd_boolean bfd_default_set_arch_mach 8570 (bfd *abfd, enum bfd_architecture arch, unsigned long mach); 8571 *Description* 8572Set the architecture and machine type in BFD ABFD to ARCH and MACH. 8573Find the correct pointer to a structure and insert it into the 8574`arch_info' pointer. 8575 85762.13.2.8 `bfd_get_arch' 8577....................... 8578 8579*Synopsis* 8580 enum bfd_architecture bfd_get_arch (bfd *abfd); 8581 *Description* 8582Return the enumerated type which describes the BFD ABFD's architecture. 8583 85842.13.2.9 `bfd_get_mach' 8585....................... 8586 8587*Synopsis* 8588 unsigned long bfd_get_mach (bfd *abfd); 8589 *Description* 8590Return the long type which describes the BFD ABFD's machine. 8591 85922.13.2.10 `bfd_arch_bits_per_byte' 8593.................................. 8594 8595*Synopsis* 8596 unsigned int bfd_arch_bits_per_byte (bfd *abfd); 8597 *Description* 8598Return the number of bits in one of the BFD ABFD's architecture's bytes. 8599 86002.13.2.11 `bfd_arch_bits_per_address' 8601..................................... 8602 8603*Synopsis* 8604 unsigned int bfd_arch_bits_per_address (bfd *abfd); 8605 *Description* 8606Return the number of bits in one of the BFD ABFD's architecture's 8607addresses. 8608 86092.13.2.12 `bfd_default_compatible' 8610.................................. 8611 8612*Synopsis* 8613 const bfd_arch_info_type *bfd_default_compatible 8614 (const bfd_arch_info_type *a, const bfd_arch_info_type *b); 8615 *Description* 8616The default function for testing for compatibility. 8617 86182.13.2.13 `bfd_default_scan' 8619............................ 8620 8621*Synopsis* 8622 bfd_boolean bfd_default_scan 8623 (const struct bfd_arch_info *info, const char *string); 8624 *Description* 8625The default function for working out whether this is an architecture 8626hit and a machine hit. 8627 86282.13.2.14 `bfd_get_arch_info' 8629............................. 8630 8631*Synopsis* 8632 const bfd_arch_info_type *bfd_get_arch_info (bfd *abfd); 8633 *Description* 8634Return the architecture info struct in ABFD. 8635 86362.13.2.15 `bfd_lookup_arch' 8637........................... 8638 8639*Synopsis* 8640 const bfd_arch_info_type *bfd_lookup_arch 8641 (enum bfd_architecture arch, unsigned long machine); 8642 *Description* 8643Look for the architecture info structure which matches the arguments 8644ARCH and MACHINE. A machine of 0 matches the machine/architecture 8645structure which marks itself as the default. 8646 86472.13.2.16 `bfd_printable_arch_mach' 8648................................... 8649 8650*Synopsis* 8651 const char *bfd_printable_arch_mach 8652 (enum bfd_architecture arch, unsigned long machine); 8653 *Description* 8654Return a printable string representing the architecture and machine 8655type. 8656 8657 This routine is depreciated. 8658 86592.13.2.17 `bfd_octets_per_byte' 8660............................... 8661 8662*Synopsis* 8663 unsigned int bfd_octets_per_byte (bfd *abfd); 8664 *Description* 8665Return the number of octets (8-bit quantities) per target byte (minimum 8666addressable unit). In most cases, this will be one, but some DSP 8667targets have 16, 32, or even 48 bits per byte. 8668 86692.13.2.18 `bfd_arch_mach_octets_per_byte' 8670......................................... 8671 8672*Synopsis* 8673 unsigned int bfd_arch_mach_octets_per_byte 8674 (enum bfd_architecture arch, unsigned long machine); 8675 *Description* 8676See bfd_octets_per_byte. 8677 8678 This routine is provided for those cases where a bfd * is not 8679available 8680 86812.13.2.19 `bfd_arch_default_fill' 8682................................. 8683 8684*Synopsis* 8685 void *bfd_arch_default_fill (bfd_size_type count, 8686 bfd_boolean is_bigendian, 8687 bfd_boolean code); 8688 *Description* 8689Allocate via bfd_malloc and return a fill buffer of size COUNT. If 8690IS_BIGENDIAN is TRUE, the order of bytes is big endian. If CODE is 8691TRUE, the buffer contains code. 8692 8693 8694File: bfd.info, Node: Opening and Closing, Next: Internal, Prev: Architectures, Up: BFD front end 8695 8696 /* Set to N to open the next N BFDs using an alternate id space. */ 8697 extern unsigned int bfd_use_reserved_id; 8698 86992.14 Opening and closing BFDs 8700============================= 8701 87022.14.1 Functions for opening and closing 8703---------------------------------------- 8704 87052.14.1.1 `bfd_fopen' 8706.................... 8707 8708*Synopsis* 8709 bfd *bfd_fopen (const char *filename, const char *target, 8710 const char *mode, int fd); 8711 *Description* 8712Open the file FILENAME with the target TARGET. Return a pointer to the 8713created BFD. If FD is not -1, then `fdopen' is used to open the file; 8714otherwise, `fopen' is used. MODE is passed directly to `fopen' or 8715`fdopen'. 8716 8717 Calls `bfd_find_target', so TARGET is interpreted as by that 8718function. 8719 8720 The new BFD is marked as cacheable iff FD is -1. 8721 8722 If `NULL' is returned then an error has occured. Possible errors 8723are `bfd_error_no_memory', `bfd_error_invalid_target' or `system_call' 8724error. 8725 8726 On error, FD is always closed. 8727 8728 A copy of the FILENAME argument is stored in the newly created BFD. 8729It can be accessed via the bfd_get_filename() macro. 8730 87312.14.1.2 `bfd_openr' 8732.................... 8733 8734*Synopsis* 8735 bfd *bfd_openr (const char *filename, const char *target); 8736 *Description* 8737Open the file FILENAME (using `fopen') with the target TARGET. Return 8738a pointer to the created BFD. 8739 8740 Calls `bfd_find_target', so TARGET is interpreted as by that 8741function. 8742 8743 If `NULL' is returned then an error has occured. Possible errors 8744are `bfd_error_no_memory', `bfd_error_invalid_target' or `system_call' 8745error. 8746 8747 A copy of the FILENAME argument is stored in the newly created BFD. 8748It can be accessed via the bfd_get_filename() macro. 8749 87502.14.1.3 `bfd_fdopenr' 8751...................... 8752 8753*Synopsis* 8754 bfd *bfd_fdopenr (const char *filename, const char *target, int fd); 8755 *Description* 8756`bfd_fdopenr' is to `bfd_fopenr' much like `fdopen' is to `fopen'. It 8757opens a BFD on a file already described by the FD supplied. 8758 8759 When the file is later `bfd_close'd, the file descriptor will be 8760closed. If the caller desires that this file descriptor be cached by 8761BFD (opened as needed, closed as needed to free descriptors for other 8762opens), with the supplied FD used as an initial file descriptor (but 8763subject to closure at any time), call bfd_set_cacheable(bfd, 1) on the 8764returned BFD. The default is to assume no caching; the file descriptor 8765will remain open until `bfd_close', and will not be affected by BFD 8766operations on other files. 8767 8768 Possible errors are `bfd_error_no_memory', 8769`bfd_error_invalid_target' and `bfd_error_system_call'. 8770 8771 On error, FD is closed. 8772 8773 A copy of the FILENAME argument is stored in the newly created BFD. 8774It can be accessed via the bfd_get_filename() macro. 8775 87762.14.1.4 `bfd_openstreamr' 8777.......................... 8778 8779*Synopsis* 8780 bfd *bfd_openstreamr (const char * filename, const char * target, void * stream); 8781 *Description* 8782Open a BFD for read access on an existing stdio stream. When the BFD 8783is passed to `bfd_close', the stream will be closed. 8784 8785 A copy of the FILENAME argument is stored in the newly created BFD. 8786It can be accessed via the bfd_get_filename() macro. 8787 87882.14.1.5 `bfd_openr_iovec' 8789.......................... 8790 8791*Synopsis* 8792 bfd *bfd_openr_iovec (const char *filename, const char *target, 8793 void *(*open_func) (struct bfd *nbfd, 8794 void *open_closure), 8795 void *open_closure, 8796 file_ptr (*pread_func) (struct bfd *nbfd, 8797 void *stream, 8798 void *buf, 8799 file_ptr nbytes, 8800 file_ptr offset), 8801 int (*close_func) (struct bfd *nbfd, 8802 void *stream), 8803 int (*stat_func) (struct bfd *abfd, 8804 void *stream, 8805 struct stat *sb)); 8806 *Description* 8807Create and return a BFD backed by a read-only STREAM. The STREAM is 8808created using OPEN_FUNC, accessed using PREAD_FUNC and destroyed using 8809CLOSE_FUNC. 8810 8811 Calls `bfd_find_target', so TARGET is interpreted as by that 8812function. 8813 8814 Calls OPEN_FUNC (which can call `bfd_zalloc' and `bfd_get_filename') 8815to obtain the read-only stream backing the BFD. OPEN_FUNC either 8816succeeds returning the non-`NULL' STREAM, or fails returning `NULL' 8817(setting `bfd_error'). 8818 8819 Calls PREAD_FUNC to request NBYTES of data from STREAM starting at 8820OFFSET (e.g., via a call to `bfd_read'). PREAD_FUNC either succeeds 8821returning the number of bytes read (which can be less than NBYTES when 8822end-of-file), or fails returning -1 (setting `bfd_error'). 8823 8824 Calls CLOSE_FUNC when the BFD is later closed using `bfd_close'. 8825CLOSE_FUNC either succeeds returning 0, or fails returning -1 (setting 8826`bfd_error'). 8827 8828 Calls STAT_FUNC to fill in a stat structure for bfd_stat, 8829bfd_get_size, and bfd_get_mtime calls. STAT_FUNC returns 0 on success, 8830or returns -1 on failure (setting `bfd_error'). 8831 8832 If `bfd_openr_iovec' returns `NULL' then an error has occurred. 8833Possible errors are `bfd_error_no_memory', `bfd_error_invalid_target' 8834and `bfd_error_system_call'. 8835 8836 A copy of the FILENAME argument is stored in the newly created BFD. 8837It can be accessed via the bfd_get_filename() macro. 8838 88392.14.1.6 `bfd_openw' 8840.................... 8841 8842*Synopsis* 8843 bfd *bfd_openw (const char *filename, const char *target); 8844 *Description* 8845Create a BFD, associated with file FILENAME, using the file format 8846TARGET, and return a pointer to it. 8847 8848 Possible errors are `bfd_error_system_call', `bfd_error_no_memory', 8849`bfd_error_invalid_target'. 8850 8851 A copy of the FILENAME argument is stored in the newly created BFD. 8852It can be accessed via the bfd_get_filename() macro. 8853 88542.14.1.7 `bfd_close' 8855.................... 8856 8857*Synopsis* 8858 bfd_boolean bfd_close (bfd *abfd); 8859 *Description* 8860Close a BFD. If the BFD was open for writing, then pending operations 8861are completed and the file written out and closed. If the created file 8862is executable, then `chmod' is called to mark it as such. 8863 8864 All memory attached to the BFD is released. 8865 8866 The file descriptor associated with the BFD is closed (even if it 8867was passed in to BFD by `bfd_fdopenr'). 8868 8869 *Returns* 8870`TRUE' is returned if all is ok, otherwise `FALSE'. 8871 88722.14.1.8 `bfd_close_all_done' 8873............................. 8874 8875*Synopsis* 8876 bfd_boolean bfd_close_all_done (bfd *); 8877 *Description* 8878Close a BFD. Differs from `bfd_close' since it does not complete any 8879pending operations. This routine would be used if the application had 8880just used BFD for swapping and didn't want to use any of the writing 8881code. 8882 8883 If the created file is executable, then `chmod' is called to mark it 8884as such. 8885 8886 All memory attached to the BFD is released. 8887 8888 *Returns* 8889`TRUE' is returned if all is ok, otherwise `FALSE'. 8890 88912.14.1.9 `bfd_create' 8892..................... 8893 8894*Synopsis* 8895 bfd *bfd_create (const char *filename, bfd *templ); 8896 *Description* 8897Create a new BFD in the manner of `bfd_openw', but without opening a 8898file. The new BFD takes the target from the target used by TEMPL. The 8899format is always set to `bfd_object'. 8900 8901 A copy of the FILENAME argument is stored in the newly created BFD. 8902It can be accessed via the bfd_get_filename() macro. 8903 89042.14.1.10 `bfd_make_writable' 8905............................. 8906 8907*Synopsis* 8908 bfd_boolean bfd_make_writable (bfd *abfd); 8909 *Description* 8910Takes a BFD as created by `bfd_create' and converts it into one like as 8911returned by `bfd_openw'. It does this by converting the BFD to 8912BFD_IN_MEMORY. It's assumed that you will call `bfd_make_readable' on 8913this bfd later. 8914 8915 *Returns* 8916`TRUE' is returned if all is ok, otherwise `FALSE'. 8917 89182.14.1.11 `bfd_make_readable' 8919............................. 8920 8921*Synopsis* 8922 bfd_boolean bfd_make_readable (bfd *abfd); 8923 *Description* 8924Takes a BFD as created by `bfd_create' and `bfd_make_writable' and 8925converts it into one like as returned by `bfd_openr'. It does this by 8926writing the contents out to the memory buffer, then reversing the 8927direction. 8928 8929 *Returns* 8930`TRUE' is returned if all is ok, otherwise `FALSE'. 8931 89322.14.1.12 `bfd_alloc' 8933..................... 8934 8935*Synopsis* 8936 void *bfd_alloc (bfd *abfd, bfd_size_type wanted); 8937 *Description* 8938Allocate a block of WANTED bytes of memory attached to `abfd' and 8939return a pointer to it. 8940 89412.14.1.13 `bfd_alloc2' 8942...................... 8943 8944*Synopsis* 8945 void *bfd_alloc2 (bfd *abfd, bfd_size_type nmemb, bfd_size_type size); 8946 *Description* 8947Allocate a block of NMEMB elements of SIZE bytes each of memory 8948attached to `abfd' and return a pointer to it. 8949 89502.14.1.14 `bfd_zalloc' 8951...................... 8952 8953*Synopsis* 8954 void *bfd_zalloc (bfd *abfd, bfd_size_type wanted); 8955 *Description* 8956Allocate a block of WANTED bytes of zeroed memory attached to `abfd' 8957and return a pointer to it. 8958 89592.14.1.15 `bfd_zalloc2' 8960....................... 8961 8962*Synopsis* 8963 void *bfd_zalloc2 (bfd *abfd, bfd_size_type nmemb, bfd_size_type size); 8964 *Description* 8965Allocate a block of NMEMB elements of SIZE bytes each of zeroed memory 8966attached to `abfd' and return a pointer to it. 8967 89682.14.1.16 `bfd_calc_gnu_debuglink_crc32' 8969........................................ 8970 8971*Synopsis* 8972 unsigned long bfd_calc_gnu_debuglink_crc32 8973 (unsigned long crc, const unsigned char *buf, bfd_size_type len); 8974 *Description* 8975Computes a CRC value as used in the .gnu_debuglink section. Advances 8976the previously computed CRC value by computing and adding in the crc32 8977for LEN bytes of BUF. 8978 8979 *Returns* 8980Return the updated CRC32 value. 8981 89822.14.1.17 `bfd_get_debug_link_info' 8983................................... 8984 8985*Synopsis* 8986 char *bfd_get_debug_link_info (bfd *abfd, unsigned long *crc32_out); 8987 *Description* 8988Fetch the filename and CRC32 value for any separate debuginfo 8989associated with ABFD. Return NULL if no such info found, otherwise 8990return filename and update CRC32_OUT. The returned filename is 8991allocated with `malloc'; freeing it is the responsibility of the caller. 8992 89932.14.1.18 `bfd_get_alt_debug_link_info' 8994....................................... 8995 8996*Synopsis* 8997 char *bfd_get_alt_debug_link_info (bfd * abfd, 8998 bfd_size_type *buildid_len, 8999 bfd_byte **buildid_out); 9000 *Description* 9001Fetch the filename and BuildID value for any alternate debuginfo 9002associated with ABFD. Return NULL if no such info found, otherwise 9003return filename and update BUILDID_LEN and BUILDID_OUT. The returned 9004filename and build_id are allocated with `malloc'; freeing them is the 9005responsibility of the caller. 9006 90072.14.1.19 `separate_debug_file_exists' 9008...................................... 9009 9010*Synopsis* 9011 bfd_boolean separate_debug_file_exists 9012 (char *name, unsigned long crc32); 9013 *Description* 9014Checks to see if NAME is a file and if its contents match CRC32. 9015 90162.14.1.20 `separate_alt_debug_file_exists' 9017.......................................... 9018 9019*Synopsis* 9020 bfd_boolean separate_alt_debug_file_exists 9021 (char *name, unsigned long crc32); 9022 *Description* 9023Checks to see if NAME is a file and if its BuildID matches BUILDID. 9024 90252.14.1.21 `find_separate_debug_file' 9026.................................... 9027 9028*Synopsis* 9029 char *find_separate_debug_file (bfd *abfd); 9030 *Description* 9031Searches ABFD for a section called SECTION_NAME which is expected to 9032contain a reference to a file containing separate debugging 9033information. The function scans various locations in the filesystem, 9034including the file tree rooted at DEBUG_FILE_DIRECTORY, and returns the 9035first matching filename that it finds. If CHECK_CRC is TRUE then the 9036contents of the file must also match the CRC value contained in 9037SECTION_NAME. Returns NULL if no valid file could be found. 9038 90392.14.1.22 `bfd_follow_gnu_debuglink' 9040.................................... 9041 9042*Synopsis* 9043 char *bfd_follow_gnu_debuglink (bfd *abfd, const char *dir); 9044 *Description* 9045Takes a BFD and searches it for a .gnu_debuglink section. If this 9046section is found, it examines the section for the name and checksum of 9047a '.debug' file containing auxiliary debugging information. It then 9048searches the filesystem for this .debug file in some standard 9049locations, including the directory tree rooted at DIR, and if found 9050returns the full filename. 9051 9052 If DIR is NULL, it will search a default path configured into libbfd 9053at build time. [XXX this feature is not currently implemented]. 9054 9055 *Returns* 9056`NULL' on any errors or failure to locate the .debug file, otherwise a 9057pointer to a heap-allocated string containing the filename. The caller 9058is responsible for freeing this string. 9059 90602.14.1.23 `bfd_follow_gnu_debugaltlink' 9061....................................... 9062 9063*Synopsis* 9064 char *bfd_follow_gnu_debugaltlink (bfd *abfd, const char *dir); 9065 *Description* 9066Takes a BFD and searches it for a .gnu_debugaltlink section. If this 9067section is found, it examines the section for the name of a file 9068containing auxiliary debugging information. It then searches the 9069filesystem for this file in a set of standard locations, including the 9070directory tree rooted at DIR, and if found returns the full filename. 9071 9072 If DIR is NULL, it will search a default path configured into libbfd 9073at build time. [FIXME: This feature is not currently implemented]. 9074 9075 *Returns* 9076`NULL' on any errors or failure to locate the debug file, otherwise a 9077pointer to a heap-allocated string containing the filename. The caller 9078is responsible for freeing this string. 9079 90802.14.1.24 `bfd_create_gnu_debuglink_section' 9081............................................ 9082 9083*Synopsis* 9084 struct bfd_section *bfd_create_gnu_debuglink_section 9085 (bfd *abfd, const char *filename); 9086 *Description* 9087Takes a BFD and adds a .gnu_debuglink section to it. The section is 9088sized to be big enough to contain a link to the specified FILENAME. 9089 9090 *Returns* 9091A pointer to the new section is returned if all is ok. Otherwise 9092`NULL' is returned and bfd_error is set. 9093 90942.14.1.25 `bfd_fill_in_gnu_debuglink_section' 9095............................................. 9096 9097*Synopsis* 9098 bfd_boolean bfd_fill_in_gnu_debuglink_section 9099 (bfd *abfd, struct bfd_section *sect, const char *filename); 9100 *Description* 9101Takes a BFD and containing a .gnu_debuglink section SECT and fills in 9102the contents of the section to contain a link to the specified 9103FILENAME. The filename should be relative to the current directory. 9104 9105 *Returns* 9106`TRUE' is returned if all is ok. Otherwise `FALSE' is returned and 9107bfd_error is set. 9108 9109 9110File: bfd.info, Node: Internal, Next: File Caching, Prev: Opening and Closing, Up: BFD front end 9111 91122.15 Implementation details 9113=========================== 9114 91152.15.1 Internal functions 9116------------------------- 9117 9118*Description* 9119These routines are used within BFD. They are not intended for export, 9120but are documented here for completeness. 9121 91222.15.1.1 `bfd_write_bigendian_4byte_int' 9123........................................ 9124 9125*Synopsis* 9126 bfd_boolean bfd_write_bigendian_4byte_int (bfd *, unsigned int); 9127 *Description* 9128Write a 4 byte integer I to the output BFD ABFD, in big endian order 9129regardless of what else is going on. This is useful in archives. 9130 91312.15.1.2 `bfd_put_size' 9132....................... 9133 91342.15.1.3 `bfd_get_size' 9135....................... 9136 9137*Description* 9138These macros as used for reading and writing raw data in sections; each 9139access (except for bytes) is vectored through the target format of the 9140BFD and mangled accordingly. The mangling performs any necessary endian 9141translations and removes alignment restrictions. Note that types 9142accepted and returned by these macros are identical so they can be 9143swapped around in macros--for example, `libaout.h' defines `GET_WORD' 9144to either `bfd_get_32' or `bfd_get_64'. 9145 9146 In the put routines, VAL must be a `bfd_vma'. If we are on a system 9147without prototypes, the caller is responsible for making sure that is 9148true, with a cast if necessary. We don't cast them in the macro 9149definitions because that would prevent `lint' or `gcc -Wall' from 9150detecting sins such as passing a pointer. To detect calling these with 9151less than a `bfd_vma', use `gcc -Wconversion' on a host with 64 bit 9152`bfd_vma''s. 9153 9154 /* Byte swapping macros for user section data. */ 9155 9156 #define bfd_put_8(abfd, val, ptr) \ 9157 ((void) (*((unsigned char *) (ptr)) = (val) & 0xff)) 9158 #define bfd_put_signed_8 \ 9159 bfd_put_8 9160 #define bfd_get_8(abfd, ptr) \ 9161 (*(const unsigned char *) (ptr) & 0xff) 9162 #define bfd_get_signed_8(abfd, ptr) \ 9163 (((*(const unsigned char *) (ptr) & 0xff) ^ 0x80) - 0x80) 9164 9165 #define bfd_put_16(abfd, val, ptr) \ 9166 BFD_SEND (abfd, bfd_putx16, ((val),(ptr))) 9167 #define bfd_put_signed_16 \ 9168 bfd_put_16 9169 #define bfd_get_16(abfd, ptr) \ 9170 BFD_SEND (abfd, bfd_getx16, (ptr)) 9171 #define bfd_get_signed_16(abfd, ptr) \ 9172 BFD_SEND (abfd, bfd_getx_signed_16, (ptr)) 9173 9174 #define bfd_put_32(abfd, val, ptr) \ 9175 BFD_SEND (abfd, bfd_putx32, ((val),(ptr))) 9176 #define bfd_put_signed_32 \ 9177 bfd_put_32 9178 #define bfd_get_32(abfd, ptr) \ 9179 BFD_SEND (abfd, bfd_getx32, (ptr)) 9180 #define bfd_get_signed_32(abfd, ptr) \ 9181 BFD_SEND (abfd, bfd_getx_signed_32, (ptr)) 9182 9183 #define bfd_put_64(abfd, val, ptr) \ 9184 BFD_SEND (abfd, bfd_putx64, ((val), (ptr))) 9185 #define bfd_put_signed_64 \ 9186 bfd_put_64 9187 #define bfd_get_64(abfd, ptr) \ 9188 BFD_SEND (abfd, bfd_getx64, (ptr)) 9189 #define bfd_get_signed_64(abfd, ptr) \ 9190 BFD_SEND (abfd, bfd_getx_signed_64, (ptr)) 9191 9192 #define bfd_get(bits, abfd, ptr) \ 9193 ((bits) == 8 ? (bfd_vma) bfd_get_8 (abfd, ptr) \ 9194 : (bits) == 16 ? bfd_get_16 (abfd, ptr) \ 9195 : (bits) == 32 ? bfd_get_32 (abfd, ptr) \ 9196 : (bits) == 64 ? bfd_get_64 (abfd, ptr) \ 9197 : (abort (), (bfd_vma) - 1)) 9198 9199 #define bfd_put(bits, abfd, val, ptr) \ 9200 ((bits) == 8 ? bfd_put_8 (abfd, val, ptr) \ 9201 : (bits) == 16 ? bfd_put_16 (abfd, val, ptr) \ 9202 : (bits) == 32 ? bfd_put_32 (abfd, val, ptr) \ 9203 : (bits) == 64 ? bfd_put_64 (abfd, val, ptr) \ 9204 : (abort (), (void) 0)) 9205 92062.15.1.4 `bfd_h_put_size' 9207......................... 9208 9209*Description* 9210These macros have the same function as their `bfd_get_x' brethren, 9211except that they are used for removing information for the header 9212records of object files. Believe it or not, some object files keep 9213their header records in big endian order and their data in little 9214endian order. 9215 9216 /* Byte swapping macros for file header data. */ 9217 9218 #define bfd_h_put_8(abfd, val, ptr) \ 9219 bfd_put_8 (abfd, val, ptr) 9220 #define bfd_h_put_signed_8(abfd, val, ptr) \ 9221 bfd_put_8 (abfd, val, ptr) 9222 #define bfd_h_get_8(abfd, ptr) \ 9223 bfd_get_8 (abfd, ptr) 9224 #define bfd_h_get_signed_8(abfd, ptr) \ 9225 bfd_get_signed_8 (abfd, ptr) 9226 9227 #define bfd_h_put_16(abfd, val, ptr) \ 9228 BFD_SEND (abfd, bfd_h_putx16, (val, ptr)) 9229 #define bfd_h_put_signed_16 \ 9230 bfd_h_put_16 9231 #define bfd_h_get_16(abfd, ptr) \ 9232 BFD_SEND (abfd, bfd_h_getx16, (ptr)) 9233 #define bfd_h_get_signed_16(abfd, ptr) \ 9234 BFD_SEND (abfd, bfd_h_getx_signed_16, (ptr)) 9235 9236 #define bfd_h_put_32(abfd, val, ptr) \ 9237 BFD_SEND (abfd, bfd_h_putx32, (val, ptr)) 9238 #define bfd_h_put_signed_32 \ 9239 bfd_h_put_32 9240 #define bfd_h_get_32(abfd, ptr) \ 9241 BFD_SEND (abfd, bfd_h_getx32, (ptr)) 9242 #define bfd_h_get_signed_32(abfd, ptr) \ 9243 BFD_SEND (abfd, bfd_h_getx_signed_32, (ptr)) 9244 9245 #define bfd_h_put_64(abfd, val, ptr) \ 9246 BFD_SEND (abfd, bfd_h_putx64, (val, ptr)) 9247 #define bfd_h_put_signed_64 \ 9248 bfd_h_put_64 9249 #define bfd_h_get_64(abfd, ptr) \ 9250 BFD_SEND (abfd, bfd_h_getx64, (ptr)) 9251 #define bfd_h_get_signed_64(abfd, ptr) \ 9252 BFD_SEND (abfd, bfd_h_getx_signed_64, (ptr)) 9253 9254 /* Aliases for the above, which should eventually go away. */ 9255 9256 #define H_PUT_64 bfd_h_put_64 9257 #define H_PUT_32 bfd_h_put_32 9258 #define H_PUT_16 bfd_h_put_16 9259 #define H_PUT_8 bfd_h_put_8 9260 #define H_PUT_S64 bfd_h_put_signed_64 9261 #define H_PUT_S32 bfd_h_put_signed_32 9262 #define H_PUT_S16 bfd_h_put_signed_16 9263 #define H_PUT_S8 bfd_h_put_signed_8 9264 #define H_GET_64 bfd_h_get_64 9265 #define H_GET_32 bfd_h_get_32 9266 #define H_GET_16 bfd_h_get_16 9267 #define H_GET_8 bfd_h_get_8 9268 #define H_GET_S64 bfd_h_get_signed_64 9269 #define H_GET_S32 bfd_h_get_signed_32 9270 #define H_GET_S16 bfd_h_get_signed_16 9271 #define H_GET_S8 bfd_h_get_signed_8 9272 92732.15.1.5 `bfd_log2' 9274................... 9275 9276*Synopsis* 9277 unsigned int bfd_log2 (bfd_vma x); 9278 *Description* 9279Return the log base 2 of the value supplied, rounded up. E.g., an X of 92801025 returns 11. A X of 0 returns 0. 9281 9282 9283File: bfd.info, Node: File Caching, Next: Linker Functions, Prev: Internal, Up: BFD front end 9284 92852.16 File caching 9286================= 9287 9288The file caching mechanism is embedded within BFD and allows the 9289application to open as many BFDs as it wants without regard to the 9290underlying operating system's file descriptor limit (often as low as 20 9291open files). The module in `cache.c' maintains a least recently used 9292list of `bfd_cache_max_open' files, and exports the name 9293`bfd_cache_lookup', which runs around and makes sure that the required 9294BFD is open. If not, then it chooses a file to close, closes it and 9295opens the one wanted, returning its file handle. 9296 92972.16.1 Caching functions 9298------------------------ 9299 93002.16.1.1 `bfd_cache_init' 9301......................... 9302 9303*Synopsis* 9304 bfd_boolean bfd_cache_init (bfd *abfd); 9305 *Description* 9306Add a newly opened BFD to the cache. 9307 93082.16.1.2 `bfd_cache_close' 9309.......................... 9310 9311*Synopsis* 9312 bfd_boolean bfd_cache_close (bfd *abfd); 9313 *Description* 9314Remove the BFD ABFD from the cache. If the attached file is open, then 9315close it too. 9316 9317 *Returns* 9318`FALSE' is returned if closing the file fails, `TRUE' is returned if 9319all is well. 9320 93212.16.1.3 `bfd_cache_close_all' 9322.............................. 9323 9324*Synopsis* 9325 bfd_boolean bfd_cache_close_all (void); 9326 *Description* 9327Remove all BFDs from the cache. If the attached file is open, then 9328close it too. 9329 9330 *Returns* 9331`FALSE' is returned if closing one of the file fails, `TRUE' is 9332returned if all is well. 9333 93342.16.1.4 `bfd_open_file' 9335........................ 9336 9337*Synopsis* 9338 FILE* bfd_open_file (bfd *abfd); 9339 *Description* 9340Call the OS to open a file for ABFD. Return the `FILE *' (possibly 9341`NULL') that results from this operation. Set up the BFD so that 9342future accesses know the file is open. If the `FILE *' returned is 9343`NULL', then it won't have been put in the cache, so it won't have to 9344be removed from it. 9345 9346 9347File: bfd.info, Node: Linker Functions, Next: Hash Tables, Prev: File Caching, Up: BFD front end 9348 93492.17 Linker Functions 9350===================== 9351 9352The linker uses three special entry points in the BFD target vector. 9353It is not necessary to write special routines for these entry points 9354when creating a new BFD back end, since generic versions are provided. 9355However, writing them can speed up linking and make it use 9356significantly less runtime memory. 9357 9358 The first routine creates a hash table used by the other routines. 9359The second routine adds the symbols from an object file to the hash 9360table. The third routine takes all the object files and links them 9361together to create the output file. These routines are designed so 9362that the linker proper does not need to know anything about the symbols 9363in the object files that it is linking. The linker merely arranges the 9364sections as directed by the linker script and lets BFD handle the 9365details of symbols and relocs. 9366 9367 The second routine and third routines are passed a pointer to a 9368`struct bfd_link_info' structure (defined in `bfdlink.h') which holds 9369information relevant to the link, including the linker hash table 9370(which was created by the first routine) and a set of callback 9371functions to the linker proper. 9372 9373 The generic linker routines are in `linker.c', and use the header 9374file `genlink.h'. As of this writing, the only back ends which have 9375implemented versions of these routines are a.out (in `aoutx.h') and 9376ECOFF (in `ecoff.c'). The a.out routines are used as examples 9377throughout this section. 9378 9379* Menu: 9380 9381* Creating a Linker Hash Table:: 9382* Adding Symbols to the Hash Table:: 9383* Performing the Final Link:: 9384 9385 9386File: bfd.info, Node: Creating a Linker Hash Table, Next: Adding Symbols to the Hash Table, Prev: Linker Functions, Up: Linker Functions 9387 93882.17.1 Creating a linker hash table 9389----------------------------------- 9390 9391The linker routines must create a hash table, which must be derived 9392from `struct bfd_link_hash_table' described in `bfdlink.c'. *Note Hash 9393Tables::, for information on how to create a derived hash table. This 9394entry point is called using the target vector of the linker output file. 9395 9396 The `_bfd_link_hash_table_create' entry point must allocate and 9397initialize an instance of the desired hash table. If the back end does 9398not require any additional information to be stored with the entries in 9399the hash table, the entry point may simply create a `struct 9400bfd_link_hash_table'. Most likely, however, some additional 9401information will be needed. 9402 9403 For example, with each entry in the hash table the a.out linker 9404keeps the index the symbol has in the final output file (this index 9405number is used so that when doing a relocatable link the symbol index 9406used in the output file can be quickly filled in when copying over a 9407reloc). The a.out linker code defines the required structures and 9408functions for a hash table derived from `struct bfd_link_hash_table'. 9409The a.out linker hash table is created by the function 9410`NAME(aout,link_hash_table_create)'; it simply allocates space for the 9411hash table, initializes it, and returns a pointer to it. 9412 9413 When writing the linker routines for a new back end, you will 9414generally not know exactly which fields will be required until you have 9415finished. You should simply create a new hash table which defines no 9416additional fields, and then simply add fields as they become necessary. 9417 9418 9419File: bfd.info, Node: Adding Symbols to the Hash Table, Next: Performing the Final Link, Prev: Creating a Linker Hash Table, Up: Linker Functions 9420 94212.17.2 Adding symbols to the hash table 9422--------------------------------------- 9423 9424The linker proper will call the `_bfd_link_add_symbols' entry point for 9425each object file or archive which is to be linked (typically these are 9426the files named on the command line, but some may also come from the 9427linker script). The entry point is responsible for examining the file. 9428For an object file, BFD must add any relevant symbol information to 9429the hash table. For an archive, BFD must determine which elements of 9430the archive should be used and adding them to the link. 9431 9432 The a.out version of this entry point is 9433`NAME(aout,link_add_symbols)'. 9434 9435* Menu: 9436 9437* Differing file formats:: 9438* Adding symbols from an object file:: 9439* Adding symbols from an archive:: 9440 9441 9442File: 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 9443 94442.17.2.1 Differing file formats 9445............................... 9446 9447Normally all the files involved in a link will be of the same format, 9448but it is also possible to link together different format object files, 9449and the back end must support that. The `_bfd_link_add_symbols' entry 9450point is called via the target vector of the file to be added. This 9451has an important consequence: the function may not assume that the hash 9452table is the type created by the corresponding 9453`_bfd_link_hash_table_create' vector. All the `_bfd_link_add_symbols' 9454function can assume about the hash table is that it is derived from 9455`struct bfd_link_hash_table'. 9456 9457 Sometimes the `_bfd_link_add_symbols' function must store some 9458information in the hash table entry to be used by the `_bfd_final_link' 9459function. In such a case the output bfd xvec must be checked to make 9460sure that the hash table was created by an object file of the same 9461format. 9462 9463 The `_bfd_final_link' routine must be prepared to handle a hash 9464entry without any extra information added by the 9465`_bfd_link_add_symbols' function. A hash entry without extra 9466information will also occur when the linker script directs the linker 9467to create a symbol. Note that, regardless of how a hash table entry is 9468added, all the fields will be initialized to some sort of null value by 9469the hash table entry initialization function. 9470 9471 See `ecoff_link_add_externals' for an example of how to check the 9472output bfd before saving information (in this case, the ECOFF external 9473symbol debugging information) in a hash table entry. 9474 9475 9476File: 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 9477 94782.17.2.2 Adding symbols from an object file 9479........................................... 9480 9481When the `_bfd_link_add_symbols' routine is passed an object file, it 9482must add all externally visible symbols in that object file to the hash 9483table. The actual work of adding the symbol to the hash table is 9484normally handled by the function `_bfd_generic_link_add_one_symbol'. 9485The `_bfd_link_add_symbols' routine is responsible for reading all the 9486symbols from the object file and passing the correct information to 9487`_bfd_generic_link_add_one_symbol'. 9488 9489 The `_bfd_link_add_symbols' routine should not use 9490`bfd_canonicalize_symtab' to read the symbols. The point of providing 9491this routine is to avoid the overhead of converting the symbols into 9492generic `asymbol' structures. 9493 9494 `_bfd_generic_link_add_one_symbol' handles the details of combining 9495common symbols, warning about multiple definitions, and so forth. It 9496takes arguments which describe the symbol to add, notably symbol flags, 9497a section, and an offset. The symbol flags include such things as 9498`BSF_WEAK' or `BSF_INDIRECT'. The section is a section in the object 9499file, or something like `bfd_und_section_ptr' for an undefined symbol 9500or `bfd_com_section_ptr' for a common symbol. 9501 9502 If the `_bfd_final_link' routine is also going to need to read the 9503symbol information, the `_bfd_link_add_symbols' routine should save it 9504somewhere attached to the object file BFD. However, the information 9505should only be saved if the `keep_memory' field of the `info' argument 9506is TRUE, so that the `-no-keep-memory' linker switch is effective. 9507 9508 The a.out function which adds symbols from an object file is 9509`aout_link_add_object_symbols', and most of the interesting work is in 9510`aout_link_add_symbols'. The latter saves pointers to the hash tables 9511entries created by `_bfd_generic_link_add_one_symbol' indexed by symbol 9512number, so that the `_bfd_final_link' routine does not have to call the 9513hash table lookup routine to locate the entry. 9514 9515 9516File: bfd.info, Node: Adding symbols from an archive, Prev: Adding symbols from an object file, Up: Adding Symbols to the Hash Table 9517 95182.17.2.3 Adding symbols from an archive 9519....................................... 9520 9521When the `_bfd_link_add_symbols' routine is passed an archive, it must 9522look through the symbols defined by the archive and decide which 9523elements of the archive should be included in the link. For each such 9524element it must call the `add_archive_element' linker callback, and it 9525must add the symbols from the object file to the linker hash table. 9526(The callback may in fact indicate that a replacement BFD should be 9527used, in which case the symbols from that BFD should be added to the 9528linker hash table instead.) 9529 9530 In most cases the work of looking through the symbols in the archive 9531should be done by the `_bfd_generic_link_add_archive_symbols' function. 9532`_bfd_generic_link_add_archive_symbols' is passed a function to call to 9533make the final decision about adding an archive element to the link and 9534to do the actual work of adding the symbols to the linker hash table. 9535If the element is to be included, the `add_archive_element' linker 9536callback routine must be called with the element as an argument, and 9537the element's symbols must be added to the linker hash table just as 9538though the element had itself been passed to the 9539`_bfd_link_add_symbols' function. 9540 9541 When the a.out `_bfd_link_add_symbols' function receives an archive, 9542it calls `_bfd_generic_link_add_archive_symbols' passing 9543`aout_link_check_archive_element' as the function argument. 9544`aout_link_check_archive_element' calls `aout_link_check_ar_symbols'. 9545If the latter decides to add the element (an element is only added if 9546it provides a real, non-common, definition for a previously undefined 9547or common symbol) it calls the `add_archive_element' callback and then 9548`aout_link_check_archive_element' calls `aout_link_add_symbols' to 9549actually add the symbols to the linker hash table - possibly those of a 9550substitute BFD, if the `add_archive_element' callback avails itself of 9551that option. 9552 9553 The ECOFF back end is unusual in that it does not normally call 9554`_bfd_generic_link_add_archive_symbols', because ECOFF archives already 9555contain a hash table of symbols. The ECOFF back end searches the 9556archive itself to avoid the overhead of creating a new hash table. 9557 9558 9559File: bfd.info, Node: Performing the Final Link, Prev: Adding Symbols to the Hash Table, Up: Linker Functions 9560 95612.17.3 Performing the final link 9562-------------------------------- 9563 9564When all the input files have been processed, the linker calls the 9565`_bfd_final_link' entry point of the output BFD. This routine is 9566responsible for producing the final output file, which has several 9567aspects. It must relocate the contents of the input sections and copy 9568the data into the output sections. It must build an output symbol 9569table including any local symbols from the input files and the global 9570symbols from the hash table. When producing relocatable output, it must 9571modify the input relocs and write them into the output file. There may 9572also be object format dependent work to be done. 9573 9574 The linker will also call the `write_object_contents' entry point 9575when the BFD is closed. The two entry points must work together in 9576order to produce the correct output file. 9577 9578 The details of how this works are inevitably dependent upon the 9579specific object file format. The a.out `_bfd_final_link' routine is 9580`NAME(aout,final_link)'. 9581 9582* Menu: 9583 9584* Information provided by the linker:: 9585* Relocating the section contents:: 9586* Writing the symbol table:: 9587 9588 9589File: bfd.info, Node: Information provided by the linker, Next: Relocating the section contents, Prev: Performing the Final Link, Up: Performing the Final Link 9590 95912.17.3.1 Information provided by the linker 9592........................................... 9593 9594Before the linker calls the `_bfd_final_link' entry point, it sets up 9595some data structures for the function to use. 9596 9597 The `input_bfds' field of the `bfd_link_info' structure will point 9598to a list of all the input files included in the link. These files are 9599linked through the `link.next' field of the `bfd' structure. 9600 9601 Each section in the output file will have a list of `link_order' 9602structures attached to the `map_head.link_order' field (the 9603`link_order' structure is defined in `bfdlink.h'). These structures 9604describe how to create the contents of the output section in terms of 9605the contents of various input sections, fill constants, and, 9606eventually, other types of information. They also describe relocs that 9607must be created by the BFD backend, but do not correspond to any input 9608file; this is used to support -Ur, which builds constructors while 9609generating a relocatable object file. 9610 9611 9612File: bfd.info, Node: Relocating the section contents, Next: Writing the symbol table, Prev: Information provided by the linker, Up: Performing the Final Link 9613 96142.17.3.2 Relocating the section contents 9615........................................ 9616 9617The `_bfd_final_link' function should look through the `link_order' 9618structures attached to each section of the output file. Each 9619`link_order' structure should either be handled specially, or it should 9620be passed to the function `_bfd_default_link_order' which will do the 9621right thing (`_bfd_default_link_order' is defined in `linker.c'). 9622 9623 For efficiency, a `link_order' of type `bfd_indirect_link_order' 9624whose associated section belongs to a BFD of the same format as the 9625output BFD must be handled specially. This type of `link_order' 9626describes part of an output section in terms of a section belonging to 9627one of the input files. The `_bfd_final_link' function should read the 9628contents of the section and any associated relocs, apply the relocs to 9629the section contents, and write out the modified section contents. If 9630performing a relocatable link, the relocs themselves must also be 9631modified and written out. 9632 9633 The functions `_bfd_relocate_contents' and 9634`_bfd_final_link_relocate' provide some general support for performing 9635the actual relocations, notably overflow checking. Their arguments 9636include information about the symbol the relocation is against and a 9637`reloc_howto_type' argument which describes the relocation to perform. 9638These functions are defined in `reloc.c'. 9639 9640 The a.out function which handles reading, relocating, and writing 9641section contents is `aout_link_input_section'. The actual relocation 9642is done in `aout_link_input_section_std' and 9643`aout_link_input_section_ext'. 9644 9645 9646File: bfd.info, Node: Writing the symbol table, Prev: Relocating the section contents, Up: Performing the Final Link 9647 96482.17.3.3 Writing the symbol table 9649................................. 9650 9651The `_bfd_final_link' function must gather all the symbols in the input 9652files and write them out. It must also write out all the symbols in 9653the global hash table. This must be controlled by the `strip' and 9654`discard' fields of the `bfd_link_info' structure. 9655 9656 The local symbols of the input files will not have been entered into 9657the linker hash table. The `_bfd_final_link' routine must consider 9658each input file and include the symbols in the output file. It may be 9659convenient to do this when looking through the `link_order' structures, 9660or it may be done by stepping through the `input_bfds' list. 9661 9662 The `_bfd_final_link' routine must also traverse the global hash 9663table to gather all the externally visible symbols. It is possible 9664that most of the externally visible symbols may be written out when 9665considering the symbols of each input file, but it is still necessary 9666to traverse the hash table since the linker script may have defined 9667some symbols that are not in any of the input files. 9668 9669 The `strip' field of the `bfd_link_info' structure controls which 9670symbols are written out. The possible values are listed in 9671`bfdlink.h'. If the value is `strip_some', then the `keep_hash' field 9672of the `bfd_link_info' structure is a hash table of symbols to keep; 9673each symbol should be looked up in this hash table, and only symbols 9674which are present should be included in the output file. 9675 9676 If the `strip' field of the `bfd_link_info' structure permits local 9677symbols to be written out, the `discard' field is used to further 9678controls which local symbols are included in the output file. If the 9679value is `discard_l', then all local symbols which begin with a certain 9680prefix are discarded; this is controlled by the 9681`bfd_is_local_label_name' entry point. 9682 9683 The a.out backend handles symbols by calling 9684`aout_link_write_symbols' on each input BFD and then traversing the 9685global hash table with the function `aout_link_write_other_symbol'. It 9686builds a string table while writing out the symbols, which is written 9687to the output file at the end of `NAME(aout,final_link)'. 9688 96892.17.3.4 `bfd_link_split_section' 9690................................. 9691 9692*Synopsis* 9693 bfd_boolean bfd_link_split_section (bfd *abfd, asection *sec); 9694 *Description* 9695Return nonzero if SEC should be split during a reloceatable or final 9696link. 9697 #define bfd_link_split_section(abfd, sec) \ 9698 BFD_SEND (abfd, _bfd_link_split_section, (abfd, sec)) 9699 97002.17.3.5 `bfd_section_already_linked' 9701..................................... 9702 9703*Synopsis* 9704 bfd_boolean bfd_section_already_linked (bfd *abfd, 9705 asection *sec, 9706 struct bfd_link_info *info); 9707 *Description* 9708Check if DATA has been already linked during a reloceatable or final 9709link. Return TRUE if it has. 9710 #define bfd_section_already_linked(abfd, sec, info) \ 9711 BFD_SEND (abfd, _section_already_linked, (abfd, sec, info)) 9712 97132.17.3.6 `bfd_generic_define_common_symbol' 9714........................................... 9715 9716*Synopsis* 9717 bfd_boolean bfd_generic_define_common_symbol 9718 (bfd *output_bfd, struct bfd_link_info *info, 9719 struct bfd_link_hash_entry *h); 9720 *Description* 9721Convert common symbol H into a defined symbol. Return TRUE on success 9722and FALSE on failure. 9723 #define bfd_define_common_symbol(output_bfd, info, h) \ 9724 BFD_SEND (output_bfd, _bfd_define_common_symbol, (output_bfd, info, h)) 9725 97262.17.3.7 `bfd_find_version_for_sym' 9727................................... 9728 9729*Synopsis* 9730 struct bfd_elf_version_tree * bfd_find_version_for_sym 9731 (struct bfd_elf_version_tree *verdefs, 9732 const char *sym_name, bfd_boolean *hide); 9733 *Description* 9734Search an elf version script tree for symbol versioning info and export 9735/ don't-export status for a given symbol. Return non-NULL on success 9736and NULL on failure; also sets the output `hide' boolean parameter. 9737 97382.17.3.8 `bfd_hide_sym_by_version' 9739.................................. 9740 9741*Synopsis* 9742 bfd_boolean bfd_hide_sym_by_version 9743 (struct bfd_elf_version_tree *verdefs, const char *sym_name); 9744 *Description* 9745Search an elf version script tree for symbol versioning info for a 9746given symbol. Return TRUE if the symbol is hidden. 9747 97482.17.3.9 `bfd_link_check_relocs' 9749................................ 9750 9751*Synopsis* 9752 bfd_boolean bfd_link_check_relocs 9753 (bfd *abfd, struct bfd_link_info *info); 9754 *Description* 9755Checks the relocs in ABFD for validity. Does not execute the relocs. 9756Return TRUE if everything is OK, FALSE otherwise. This is the external 9757entry point to this code. 9758 97592.17.3.10 `_bfd_generic_link_check_relocs' 9760.......................................... 9761 9762*Synopsis* 9763 bfd_boolean _bfd_generic_link_check_relocs 9764 (bfd *abfd, struct bfd_link_info *info); 9765 *Description* 9766Stub function for targets that do not implement reloc checking. Return 9767TRUE. This is an internal function. It should not be called from 9768outside the BFD library. 9769 9770 9771File: bfd.info, Node: Hash Tables, Prev: Linker Functions, Up: BFD front end 9772 97732.18 Hash Tables 9774================ 9775 9776BFD provides a simple set of hash table functions. Routines are 9777provided to initialize a hash table, to free a hash table, to look up a 9778string in a hash table and optionally create an entry for it, and to 9779traverse a hash table. There is currently no routine to delete an 9780string from a hash table. 9781 9782 The basic hash table does not permit any data to be stored with a 9783string. However, a hash table is designed to present a base class from 9784which other types of hash tables may be derived. These derived types 9785may store additional information with the string. Hash tables were 9786implemented in this way, rather than simply providing a data pointer in 9787a hash table entry, because they were designed for use by the linker 9788back ends. The linker may create thousands of hash table entries, and 9789the overhead of allocating private data and storing and following 9790pointers becomes noticeable. 9791 9792 The basic hash table code is in `hash.c'. 9793 9794* Menu: 9795 9796* Creating and Freeing a Hash Table:: 9797* Looking Up or Entering a String:: 9798* Traversing a Hash Table:: 9799* Deriving a New Hash Table Type:: 9800 9801 9802File: bfd.info, Node: Creating and Freeing a Hash Table, Next: Looking Up or Entering a String, Prev: Hash Tables, Up: Hash Tables 9803 98042.18.1 Creating and freeing a hash table 9805---------------------------------------- 9806 9807To create a hash table, create an instance of a `struct bfd_hash_table' 9808(defined in `bfd.h') and call `bfd_hash_table_init' (if you know 9809approximately how many entries you will need, the function 9810`bfd_hash_table_init_n', which takes a SIZE argument, may be used). 9811`bfd_hash_table_init' returns `FALSE' if some sort of error occurs. 9812 9813 The function `bfd_hash_table_init' take as an argument a function to 9814use to create new entries. For a basic hash table, use the function 9815`bfd_hash_newfunc'. *Note Deriving a New Hash Table Type::, for why 9816you would want to use a different value for this argument. 9817 9818 `bfd_hash_table_init' will create an objalloc which will be used to 9819allocate new entries. You may allocate memory on this objalloc using 9820`bfd_hash_allocate'. 9821 9822 Use `bfd_hash_table_free' to free up all the memory that has been 9823allocated for a hash table. This will not free up the `struct 9824bfd_hash_table' itself, which you must provide. 9825 9826 Use `bfd_hash_set_default_size' to set the default size of hash 9827table to use. 9828 9829 9830File: bfd.info, Node: Looking Up or Entering a String, Next: Traversing a Hash Table, Prev: Creating and Freeing a Hash Table, Up: Hash Tables 9831 98322.18.2 Looking up or entering a string 9833-------------------------------------- 9834 9835The function `bfd_hash_lookup' is used both to look up a string in the 9836hash table and to create a new entry. 9837 9838 If the CREATE argument is `FALSE', `bfd_hash_lookup' will look up a 9839string. If the string is found, it will returns a pointer to a `struct 9840bfd_hash_entry'. If the string is not found in the table 9841`bfd_hash_lookup' will return `NULL'. You should not modify any of the 9842fields in the returns `struct bfd_hash_entry'. 9843 9844 If the CREATE argument is `TRUE', the string will be entered into 9845the hash table if it is not already there. Either way a pointer to a 9846`struct bfd_hash_entry' will be returned, either to the existing 9847structure or to a newly created one. In this case, a `NULL' return 9848means that an error occurred. 9849 9850 If the CREATE argument is `TRUE', and a new entry is created, the 9851COPY argument is used to decide whether to copy the string onto the 9852hash table objalloc or not. If COPY is passed as `FALSE', you must be 9853careful not to deallocate or modify the string as long as the hash table 9854exists. 9855 9856 9857File: bfd.info, Node: Traversing a Hash Table, Next: Deriving a New Hash Table Type, Prev: Looking Up or Entering a String, Up: Hash Tables 9858 98592.18.3 Traversing a hash table 9860------------------------------ 9861 9862The function `bfd_hash_traverse' may be used to traverse a hash table, 9863calling a function on each element. The traversal is done in a random 9864order. 9865 9866 `bfd_hash_traverse' takes as arguments a function and a generic 9867`void *' pointer. The function is called with a hash table entry (a 9868`struct bfd_hash_entry *') and the generic pointer passed to 9869`bfd_hash_traverse'. The function must return a `boolean' value, which 9870indicates whether to continue traversing the hash table. If the 9871function returns `FALSE', `bfd_hash_traverse' will stop the traversal 9872and return immediately. 9873 9874 9875File: bfd.info, Node: Deriving a New Hash Table Type, Prev: Traversing a Hash Table, Up: Hash Tables 9876 98772.18.4 Deriving a new hash table type 9878------------------------------------- 9879 9880Many uses of hash tables want to store additional information which 9881each entry in the hash table. Some also find it convenient to store 9882additional information with the hash table itself. This may be done 9883using a derived hash table. 9884 9885 Since C is not an object oriented language, creating a derived hash 9886table requires sticking together some boilerplate routines with a few 9887differences specific to the type of hash table you want to create. 9888 9889 An example of a derived hash table is the linker hash table. The 9890structures for this are defined in `bfdlink.h'. The functions are in 9891`linker.c'. 9892 9893 You may also derive a hash table from an already derived hash table. 9894For example, the a.out linker backend code uses a hash table derived 9895from the linker hash table. 9896 9897* Menu: 9898 9899* Define the Derived Structures:: 9900* Write the Derived Creation Routine:: 9901* Write Other Derived Routines:: 9902 9903 9904File: 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 9905 99062.18.4.1 Define the derived structures 9907...................................... 9908 9909You must define a structure for an entry in the hash table, and a 9910structure for the hash table itself. 9911 9912 The first field in the structure for an entry in the hash table must 9913be of the type used for an entry in the hash table you are deriving 9914from. If you are deriving from a basic hash table this is `struct 9915bfd_hash_entry', which is defined in `bfd.h'. The first field in the 9916structure for the hash table itself must be of the type of the hash 9917table you are deriving from itself. If you are deriving from a basic 9918hash table, this is `struct bfd_hash_table'. 9919 9920 For example, the linker hash table defines `struct 9921bfd_link_hash_entry' (in `bfdlink.h'). The first field, `root', is of 9922type `struct bfd_hash_entry'. Similarly, the first field in `struct 9923bfd_link_hash_table', `table', is of type `struct bfd_hash_table'. 9924 9925 9926File: 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 9927 99282.18.4.2 Write the derived creation routine 9929........................................... 9930 9931You must write a routine which will create and initialize an entry in 9932the hash table. This routine is passed as the function argument to 9933`bfd_hash_table_init'. 9934 9935 In order to permit other hash tables to be derived from the hash 9936table you are creating, this routine must be written in a standard way. 9937 9938 The first argument to the creation routine is a pointer to a hash 9939table entry. This may be `NULL', in which case the routine should 9940allocate the right amount of space. Otherwise the space has already 9941been allocated by a hash table type derived from this one. 9942 9943 After allocating space, the creation routine must call the creation 9944routine of the hash table type it is derived from, passing in a pointer 9945to the space it just allocated. This will initialize any fields used 9946by the base hash table. 9947 9948 Finally the creation routine must initialize any local fields for 9949the new hash table type. 9950 9951 Here is a boilerplate example of a creation routine. FUNCTION_NAME 9952is the name of the routine. ENTRY_TYPE is the type of an entry in the 9953hash table you are creating. BASE_NEWFUNC is the name of the creation 9954routine of the hash table type your hash table is derived from. 9955 9956 struct bfd_hash_entry * 9957 FUNCTION_NAME (struct bfd_hash_entry *entry, 9958 struct bfd_hash_table *table, 9959 const char *string) 9960 { 9961 struct ENTRY_TYPE *ret = (ENTRY_TYPE *) entry; 9962 9963 /* Allocate the structure if it has not already been allocated by a 9964 derived class. */ 9965 if (ret == NULL) 9966 { 9967 ret = bfd_hash_allocate (table, sizeof (* ret)); 9968 if (ret == NULL) 9969 return NULL; 9970 } 9971 9972 /* Call the allocation method of the base class. */ 9973 ret = ((ENTRY_TYPE *) 9974 BASE_NEWFUNC ((struct bfd_hash_entry *) ret, table, string)); 9975 9976 /* Initialize the local fields here. */ 9977 9978 return (struct bfd_hash_entry *) ret; 9979 } 9980 *Description* 9981The creation routine for the linker hash table, which is in `linker.c', 9982looks just like this example. FUNCTION_NAME is 9983`_bfd_link_hash_newfunc'. ENTRY_TYPE is `struct bfd_link_hash_entry'. 9984BASE_NEWFUNC is `bfd_hash_newfunc', the creation routine for a basic 9985hash table. 9986 9987 `_bfd_link_hash_newfunc' also initializes the local fields in a 9988linker hash table entry: `type', `written' and `next'. 9989 9990 9991File: bfd.info, Node: Write Other Derived Routines, Prev: Write the Derived Creation Routine, Up: Deriving a New Hash Table Type 9992 99932.18.4.3 Write other derived routines 9994..................................... 9995 9996You will want to write other routines for your new hash table, as well. 9997 9998 You will want an initialization routine which calls the 9999initialization routine of the hash table you are deriving from and 10000initializes any other local fields. For the linker hash table, this is 10001`_bfd_link_hash_table_init' in `linker.c'. 10002 10003 You will want a lookup routine which calls the lookup routine of the 10004hash table you are deriving from and casts the result. The linker hash 10005table uses `bfd_link_hash_lookup' in `linker.c' (this actually takes an 10006additional argument which it uses to decide how to return the looked up 10007value). 10008 10009 You may want a traversal routine. This should just call the 10010traversal routine of the hash table you are deriving from with 10011appropriate casts. The linker hash table uses `bfd_link_hash_traverse' 10012in `linker.c'. 10013 10014 These routines may simply be defined as macros. For example, the 10015a.out backend linker hash table, which is derived from the linker hash 10016table, uses macros for the lookup and traversal routines. These are 10017`aout_link_hash_lookup' and `aout_link_hash_traverse' in aoutx.h. 10018 10019 10020File: bfd.info, Node: BFD back ends, Next: GNU Free Documentation License, Prev: BFD front end, Up: Top 10021 100223 BFD back ends 10023*************** 10024 10025* Menu: 10026 10027* What to Put Where:: 10028* aout :: a.out backends 10029* coff :: coff backends 10030* elf :: elf backends 10031* mmo :: mmo backend 10032 10033 10034File: bfd.info, Node: What to Put Where, Next: aout, Prev: BFD back ends, Up: BFD back ends 10035 100363.1 What to Put Where 10037===================== 10038 10039All of BFD lives in one directory. 10040 10041 10042File: bfd.info, Node: aout, Next: coff, Prev: What to Put Where, Up: BFD back ends 10043 100443.2 a.out backends 10045================== 10046 10047*Description* 10048BFD supports a number of different flavours of a.out format, though the 10049major differences are only the sizes of the structures on disk, and the 10050shape of the relocation information. 10051 10052 The support is split into a basic support file `aoutx.h' and other 10053files which derive functions from the base. One derivation file is 10054`aoutf1.h' (for a.out flavour 1), and adds to the basic a.out functions 10055support for sun3, sun4, 386 and 29k a.out files, to create a target 10056jump vector for a specific target. 10057 10058 This information is further split out into more specific files for 10059each machine, including `sunos.c' for sun3 and sun4, `newsos3.c' for 10060the Sony NEWS, and `demo64.c' for a demonstration of a 64 bit a.out 10061format. 10062 10063 The base file `aoutx.h' defines general mechanisms for reading and 10064writing records to and from disk and various other methods which BFD 10065requires. It is included by `aout32.c' and `aout64.c' to form the names 10066`aout_32_swap_exec_header_in', `aout_64_swap_exec_header_in', etc. 10067 10068 As an example, this is what goes on to make the back end for a sun4, 10069from `aout32.c': 10070 10071 #define ARCH_SIZE 32 10072 #include "aoutx.h" 10073 10074 Which exports names: 10075 10076 ... 10077 aout_32_canonicalize_reloc 10078 aout_32_find_nearest_line 10079 aout_32_get_lineno 10080 aout_32_get_reloc_upper_bound 10081 ... 10082 10083 from `sunos.c': 10084 10085 #define TARGET_NAME "a.out-sunos-big" 10086 #define VECNAME sparc_aout_sunos_be_vec 10087 #include "aoutf1.h" 10088 10089 requires all the names from `aout32.c', and produces the jump vector 10090 10091 sparc_aout_sunos_be_vec 10092 10093 The file `host-aout.c' is a special case. It is for a large set of 10094hosts that use "more or less standard" a.out files, and for which 10095cross-debugging is not interesting. It uses the standard 32-bit a.out 10096support routines, but determines the file offsets and addresses of the 10097text, data, and BSS sections, the machine architecture and machine 10098type, and the entry point address, in a host-dependent manner. Once 10099these values have been determined, generic code is used to handle the 10100object file. 10101 10102 When porting it to run on a new system, you must supply: 10103 10104 HOST_PAGE_SIZE 10105 HOST_SEGMENT_SIZE 10106 HOST_MACHINE_ARCH (optional) 10107 HOST_MACHINE_MACHINE (optional) 10108 HOST_TEXT_START_ADDR 10109 HOST_STACK_END_ADDR 10110 10111 in the file `../include/sys/h-XXX.h' (for your host). These values, 10112plus the structures and macros defined in `a.out.h' on your host 10113system, will produce a BFD target that will access ordinary a.out files 10114on your host. To configure a new machine to use `host-aout.c', specify: 10115 10116 TDEFAULTS = -DDEFAULT_VECTOR=host_aout_big_vec 10117 TDEPFILES= host-aout.o trad-core.o 10118 10119 in the `config/XXX.mt' file, and modify `configure.ac' to use the 10120`XXX.mt' file (by setting "`bfd_target=XXX'") when your configuration 10121is selected. 10122 101233.2.1 Relocations 10124----------------- 10125 10126*Description* 10127The file `aoutx.h' provides for both the _standard_ and _extended_ 10128forms of a.out relocation records. 10129 10130 The standard records contain only an address, a symbol index, and a 10131type field. The extended records (used on 29ks and sparcs) also have a 10132full integer for an addend. 10133 101343.2.2 Internal entry points 10135--------------------------- 10136 10137*Description* 10138`aoutx.h' exports several routines for accessing the contents of an 10139a.out file, which are gathered and exported in turn by various format 10140specific files (eg sunos.c). 10141 101423.2.2.1 `aout_SIZE_swap_exec_header_in' 10143....................................... 10144 10145*Synopsis* 10146 void aout_SIZE_swap_exec_header_in, 10147 (bfd *abfd, 10148 struct external_exec *bytes, 10149 struct internal_exec *execp); 10150 *Description* 10151Swap the information in an executable header RAW_BYTES taken from a raw 10152byte stream memory image into the internal exec header structure EXECP. 10153 101543.2.2.2 `aout_SIZE_swap_exec_header_out' 10155........................................ 10156 10157*Synopsis* 10158 void aout_SIZE_swap_exec_header_out 10159 (bfd *abfd, 10160 struct internal_exec *execp, 10161 struct external_exec *raw_bytes); 10162 *Description* 10163Swap the information in an internal exec header structure EXECP into 10164the buffer RAW_BYTES ready for writing to disk. 10165 101663.2.2.3 `aout_SIZE_some_aout_object_p' 10167...................................... 10168 10169*Synopsis* 10170 const bfd_target *aout_SIZE_some_aout_object_p 10171 (bfd *abfd, 10172 struct internal_exec *execp, 10173 const bfd_target *(*callback_to_real_object_p) (bfd *)); 10174 *Description* 10175Some a.out variant thinks that the file open in ABFD checking is an 10176a.out file. Do some more checking, and set up for access if it really 10177is. Call back to the calling environment's "finish up" function just 10178before returning, to handle any last-minute setup. 10179 101803.2.2.4 `aout_SIZE_mkobject' 10181............................ 10182 10183*Synopsis* 10184 bfd_boolean aout_SIZE_mkobject, (bfd *abfd); 10185 *Description* 10186Initialize BFD ABFD for use with a.out files. 10187 101883.2.2.5 `aout_SIZE_machine_type' 10189................................ 10190 10191*Synopsis* 10192 enum machine_type aout_SIZE_machine_type 10193 (enum bfd_architecture arch, 10194 unsigned long machine, 10195 bfd_boolean *unknown); 10196 *Description* 10197Keep track of machine architecture and machine type for a.out's. Return 10198the `machine_type' for a particular architecture and machine, or 10199`M_UNKNOWN' if that exact architecture and machine can't be represented 10200in a.out format. 10201 10202 If the architecture is understood, machine type 0 (default) is 10203always understood. 10204 102053.2.2.6 `aout_SIZE_set_arch_mach' 10206................................. 10207 10208*Synopsis* 10209 bfd_boolean aout_SIZE_set_arch_mach, 10210 (bfd *, 10211 enum bfd_architecture arch, 10212 unsigned long machine); 10213 *Description* 10214Set the architecture and the machine of the BFD ABFD to the values ARCH 10215and MACHINE. Verify that ABFD's format can support the architecture 10216required. 10217 102183.2.2.7 `aout_SIZE_new_section_hook' 10219.................................... 10220 10221*Synopsis* 10222 bfd_boolean aout_SIZE_new_section_hook, 10223 (bfd *abfd, 10224 asection *newsect); 10225 *Description* 10226Called by the BFD in response to a `bfd_make_section' request. 10227 10228 10229File: bfd.info, Node: coff, Next: elf, Prev: aout, Up: BFD back ends 10230 102313.3 coff backends 10232================= 10233 10234BFD supports a number of different flavours of coff format. The major 10235differences between formats are the sizes and alignments of fields in 10236structures on disk, and the occasional extra field. 10237 10238 Coff in all its varieties is implemented with a few common files and 10239a number of implementation specific files. For example, The 88k bcs 10240coff format is implemented in the file `coff-m88k.c'. This file 10241`#include's `coff/m88k.h' which defines the external structure of the 10242coff format for the 88k, and `coff/internal.h' which defines the 10243internal structure. `coff-m88k.c' also defines the relocations used by 10244the 88k format *Note Relocations::. 10245 10246 The Intel i960 processor version of coff is implemented in 10247`coff-i960.c'. This file has the same structure as `coff-m88k.c', 10248except that it includes `coff/i960.h' rather than `coff-m88k.h'. 10249 102503.3.1 Porting to a new version of coff 10251-------------------------------------- 10252 10253The recommended method is to select from the existing implementations 10254the version of coff which is most like the one you want to use. For 10255example, we'll say that i386 coff is the one you select, and that your 10256coff flavour is called foo. Copy `i386coff.c' to `foocoff.c', copy 10257`../include/coff/i386.h' to `../include/coff/foo.h', and add the lines 10258to `targets.c' and `Makefile.in' so that your new back end is used. 10259Alter the shapes of the structures in `../include/coff/foo.h' so that 10260they match what you need. You will probably also have to add `#ifdef's 10261to the code in `coff/internal.h' and `coffcode.h' if your version of 10262coff is too wild. 10263 10264 You can verify that your new BFD backend works quite simply by 10265building `objdump' from the `binutils' directory, and making sure that 10266its version of what's going on and your host system's idea (assuming it 10267has the pretty standard coff dump utility, usually called `att-dump' or 10268just `dump') are the same. Then clean up your code, and send what 10269you've done to Cygnus. Then your stuff will be in the next release, and 10270you won't have to keep integrating it. 10271 102723.3.2 How the coff backend works 10273-------------------------------- 10274 102753.3.2.1 File layout 10276................... 10277 10278The Coff backend is split into generic routines that are applicable to 10279any Coff target and routines that are specific to a particular target. 10280The target-specific routines are further split into ones which are 10281basically the same for all Coff targets except that they use the 10282external symbol format or use different values for certain constants. 10283 10284 The generic routines are in `coffgen.c'. These routines work for 10285any Coff target. They use some hooks into the target specific code; 10286the hooks are in a `bfd_coff_backend_data' structure, one of which 10287exists for each target. 10288 10289 The essentially similar target-specific routines are in 10290`coffcode.h'. This header file includes executable C code. The 10291various Coff targets first include the appropriate Coff header file, 10292make any special defines that are needed, and then include `coffcode.h'. 10293 10294 Some of the Coff targets then also have additional routines in the 10295target source file itself. 10296 10297 For example, `coff-i960.c' includes `coff/internal.h' and 10298`coff/i960.h'. It then defines a few constants, such as `I960', and 10299includes `coffcode.h'. Since the i960 has complex relocation types, 10300`coff-i960.c' also includes some code to manipulate the i960 relocs. 10301This code is not in `coffcode.h' because it would not be used by any 10302other target. 10303 103043.3.2.2 Coff long section names 10305............................... 10306 10307In the standard Coff object format, section names are limited to the 10308eight bytes available in the `s_name' field of the `SCNHDR' section 10309header structure. The format requires the field to be NUL-padded, but 10310not necessarily NUL-terminated, so the longest section names permitted 10311are a full eight characters. 10312 10313 The Microsoft PE variants of the Coff object file format add an 10314extension to support the use of long section names. This extension is 10315defined in section 4 of the Microsoft PE/COFF specification (rev 8.1). 10316If a section name is too long to fit into the section header's `s_name' 10317field, it is instead placed into the string table, and the `s_name' 10318field is filled with a slash ("/") followed by the ASCII decimal 10319representation of the offset of the full name relative to the string 10320table base. 10321 10322 Note that this implies that the extension can only be used in object 10323files, as executables do not contain a string table. The standard 10324specifies that long section names from objects emitted into executable 10325images are to be truncated. 10326 10327 However, as a GNU extension, BFD can generate executable images that 10328contain a string table and long section names. This would appear to be 10329technically valid, as the standard only says that Coff debugging 10330information is deprecated, not forbidden, and in practice it works, 10331although some tools that parse PE files expecting the MS standard 10332format may become confused; `PEview' is one known example. 10333 10334 The functionality is supported in BFD by code implemented under the 10335control of the macro `COFF_LONG_SECTION_NAMES'. If not defined, the 10336format does not support long section names in any way. If defined, it 10337is used to initialise a flag, `_bfd_coff_long_section_names', and a 10338hook function pointer, `_bfd_coff_set_long_section_names', in the Coff 10339backend data structure. The flag controls the generation of long 10340section names in output BFDs at runtime; if it is false, as it will be 10341by default when generating an executable image, long section names are 10342truncated; if true, the long section names extension is employed. The 10343hook points to a function that allows the value of the flag to be 10344altered at runtime, on formats that support long section names at all; 10345on other formats it points to a stub that returns an error indication. 10346 10347 With input BFDs, the flag is set according to whether any long 10348section names are detected while reading the section headers. For a 10349completely new BFD, the flag is set to the default for the target 10350format. This information can be used by a client of the BFD library 10351when deciding what output format to generate, and means that a BFD that 10352is opened for read and subsequently converted to a writeable BFD and 10353modified in-place will retain whatever format it had on input. 10354 10355 If `COFF_LONG_SECTION_NAMES' is simply defined (blank), or is 10356defined to the value "1", then long section names are enabled by 10357default; if it is defined to the value zero, they are disabled by 10358default (but still accepted in input BFDs). The header `coffcode.h' 10359defines a macro, `COFF_DEFAULT_LONG_SECTION_NAMES', which is used in 10360the backends to initialise the backend data structure fields 10361appropriately; see the comments for further detail. 10362 103633.3.2.3 Bit twiddling 10364..................... 10365 10366Each flavour of coff supported in BFD has its own header file 10367describing the external layout of the structures. There is also an 10368internal description of the coff layout, in `coff/internal.h'. A major 10369function of the coff backend is swapping the bytes and twiddling the 10370bits to translate the external form of the structures into the normal 10371internal form. This is all performed in the `bfd_swap'_thing_direction 10372routines. Some elements are different sizes between different versions 10373of coff; it is the duty of the coff version specific include file to 10374override the definitions of various packing routines in `coffcode.h'. 10375E.g., the size of line number entry in coff is sometimes 16 bits, and 10376sometimes 32 bits. `#define'ing `PUT_LNSZ_LNNO' and `GET_LNSZ_LNNO' 10377will select the correct one. No doubt, some day someone will find a 10378version of coff which has a varying field size not catered to at the 10379moment. To port BFD, that person will have to add more `#defines'. 10380Three of the bit twiddling routines are exported to `gdb'; 10381`coff_swap_aux_in', `coff_swap_sym_in' and `coff_swap_lineno_in'. `GDB' 10382reads the symbol table on its own, but uses BFD to fix things up. More 10383of the bit twiddlers are exported for `gas'; `coff_swap_aux_out', 10384`coff_swap_sym_out', `coff_swap_lineno_out', `coff_swap_reloc_out', 10385`coff_swap_filehdr_out', `coff_swap_aouthdr_out', 10386`coff_swap_scnhdr_out'. `Gas' currently keeps track of all the symbol 10387table and reloc drudgery itself, thereby saving the internal BFD 10388overhead, but uses BFD to swap things on the way out, making cross 10389ports much safer. Doing so also allows BFD (and thus the linker) to 10390use the same header files as `gas', which makes one avenue to disaster 10391disappear. 10392 103933.3.2.4 Symbol reading 10394...................... 10395 10396The simple canonical form for symbols used by BFD is not rich enough to 10397keep all the information available in a coff symbol table. The back end 10398gets around this problem by keeping the original symbol table around, 10399"behind the scenes". 10400 10401 When a symbol table is requested (through a call to 10402`bfd_canonicalize_symtab'), a request gets through to 10403`coff_get_normalized_symtab'. This reads the symbol table from the coff 10404file and swaps all the structures inside into the internal form. It 10405also fixes up all the pointers in the table (represented in the file by 10406offsets from the first symbol in the table) into physical pointers to 10407elements in the new internal table. This involves some work since the 10408meanings of fields change depending upon context: a field that is a 10409pointer to another structure in the symbol table at one moment may be 10410the size in bytes of a structure at the next. Another pass is made 10411over the table. All symbols which mark file names (`C_FILE' symbols) 10412are modified so that the internal string points to the value in the 10413auxent (the real filename) rather than the normal text associated with 10414the symbol (`".file"'). 10415 10416 At this time the symbol names are moved around. Coff stores all 10417symbols less than nine characters long physically within the symbol 10418table; longer strings are kept at the end of the file in the string 10419table. This pass moves all strings into memory and replaces them with 10420pointers to the strings. 10421 10422 The symbol table is massaged once again, this time to create the 10423canonical table used by the BFD application. Each symbol is inspected 10424in turn, and a decision made (using the `sclass' field) about the 10425various flags to set in the `asymbol'. *Note Symbols::. The generated 10426canonical table shares strings with the hidden internal symbol table. 10427 10428 Any linenumbers are read from the coff file too, and attached to the 10429symbols which own the functions the linenumbers belong to. 10430 104313.3.2.5 Symbol writing 10432...................... 10433 10434Writing a symbol to a coff file which didn't come from a coff file will 10435lose any debugging information. The `asymbol' structure remembers the 10436BFD from which the symbol was taken, and on output the back end makes 10437sure that the same destination target as source target is present. 10438 10439 When the symbols have come from a coff file then all the debugging 10440information is preserved. 10441 10442 Symbol tables are provided for writing to the back end in a vector 10443of pointers to pointers. This allows applications like the linker to 10444accumulate and output large symbol tables without having to do too much 10445byte copying. 10446 10447 This function runs through the provided symbol table and patches 10448each symbol marked as a file place holder (`C_FILE') to point to the 10449next file place holder in the list. It also marks each `offset' field 10450in the list with the offset from the first symbol of the current symbol. 10451 10452 Another function of this procedure is to turn the canonical value 10453form of BFD into the form used by coff. Internally, BFD expects symbol 10454values to be offsets from a section base; so a symbol physically at 104550x120, but in a section starting at 0x100, would have the value 0x20. 10456Coff expects symbols to contain their final value, so symbols have 10457their values changed at this point to reflect their sum with their 10458owning section. This transformation uses the `output_section' field of 10459the `asymbol''s `asection' *Note Sections::. 10460 10461 * `coff_mangle_symbols' 10462 This routine runs though the provided symbol table and uses the 10463offsets generated by the previous pass and the pointers generated when 10464the symbol table was read in to create the structured hierarchy 10465required by coff. It changes each pointer to a symbol into the index 10466into the symbol table of the asymbol. 10467 10468 * `coff_write_symbols' 10469 This routine runs through the symbol table and patches up the 10470symbols from their internal form into the coff way, calls the bit 10471twiddlers, and writes out the table to the file. 10472 104733.3.2.6 `coff_symbol_type' 10474.......................... 10475 10476*Description* 10477The hidden information for an `asymbol' is described in a 10478`combined_entry_type': 10479 10480 10481 typedef struct coff_ptr_struct 10482 { 10483 /* Remembers the offset from the first symbol in the file for 10484 this symbol. Generated by coff_renumber_symbols. */ 10485 unsigned int offset; 10486 10487 /* Should the value of this symbol be renumbered. Used for 10488 XCOFF C_BSTAT symbols. Set by coff_slurp_symbol_table. */ 10489 unsigned int fix_value : 1; 10490 10491 /* Should the tag field of this symbol be renumbered. 10492 Created by coff_pointerize_aux. */ 10493 unsigned int fix_tag : 1; 10494 10495 /* Should the endidx field of this symbol be renumbered. 10496 Created by coff_pointerize_aux. */ 10497 unsigned int fix_end : 1; 10498 10499 /* Should the x_csect.x_scnlen field be renumbered. 10500 Created by coff_pointerize_aux. */ 10501 unsigned int fix_scnlen : 1; 10502 10503 /* Fix up an XCOFF C_BINCL/C_EINCL symbol. The value is the 10504 index into the line number entries. Set by coff_slurp_symbol_table. */ 10505 unsigned int fix_line : 1; 10506 10507 /* The container for the symbol structure as read and translated 10508 from the file. */ 10509 union 10510 { 10511 union internal_auxent auxent; 10512 struct internal_syment syment; 10513 } u; 10514 10515 /* Selector for the union above. */ 10516 bfd_boolean is_sym; 10517 } combined_entry_type; 10518 10519 10520 /* Each canonical asymbol really looks like this: */ 10521 10522 typedef struct coff_symbol_struct 10523 { 10524 /* The actual symbol which the rest of BFD works with */ 10525 asymbol symbol; 10526 10527 /* A pointer to the hidden information for this symbol */ 10528 combined_entry_type *native; 10529 10530 /* A pointer to the linenumber information for this symbol */ 10531 struct lineno_cache_entry *lineno; 10532 10533 /* Have the line numbers been relocated yet ? */ 10534 bfd_boolean done_lineno; 10535 } coff_symbol_type; 10536 105373.3.2.7 `bfd_coff_backend_data' 10538............................... 10539 10540 /* COFF symbol classifications. */ 10541 10542 enum coff_symbol_classification 10543 { 10544 /* Global symbol. */ 10545 COFF_SYMBOL_GLOBAL, 10546 /* Common symbol. */ 10547 COFF_SYMBOL_COMMON, 10548 /* Undefined symbol. */ 10549 COFF_SYMBOL_UNDEFINED, 10550 /* Local symbol. */ 10551 COFF_SYMBOL_LOCAL, 10552 /* PE section symbol. */ 10553 COFF_SYMBOL_PE_SECTION 10554 }; 10555 10556 typedef asection * (*coff_gc_mark_hook_fn) 10557 (asection *, struct bfd_link_info *, struct internal_reloc *, 10558 struct coff_link_hash_entry *, struct internal_syment *); 10559Special entry points for gdb to swap in coff symbol table parts: 10560 typedef struct 10561 { 10562 void (*_bfd_coff_swap_aux_in) 10563 (bfd *, void *, int, int, int, int, void *); 10564 10565 void (*_bfd_coff_swap_sym_in) 10566 (bfd *, void *, void *); 10567 10568 void (*_bfd_coff_swap_lineno_in) 10569 (bfd *, void *, void *); 10570 10571 unsigned int (*_bfd_coff_swap_aux_out) 10572 (bfd *, void *, int, int, int, int, void *); 10573 10574 unsigned int (*_bfd_coff_swap_sym_out) 10575 (bfd *, void *, void *); 10576 10577 unsigned int (*_bfd_coff_swap_lineno_out) 10578 (bfd *, void *, void *); 10579 10580 unsigned int (*_bfd_coff_swap_reloc_out) 10581 (bfd *, void *, void *); 10582 10583 unsigned int (*_bfd_coff_swap_filehdr_out) 10584 (bfd *, void *, void *); 10585 10586 unsigned int (*_bfd_coff_swap_aouthdr_out) 10587 (bfd *, void *, void *); 10588 10589 unsigned int (*_bfd_coff_swap_scnhdr_out) 10590 (bfd *, void *, void *); 10591 10592 unsigned int _bfd_filhsz; 10593 unsigned int _bfd_aoutsz; 10594 unsigned int _bfd_scnhsz; 10595 unsigned int _bfd_symesz; 10596 unsigned int _bfd_auxesz; 10597 unsigned int _bfd_relsz; 10598 unsigned int _bfd_linesz; 10599 unsigned int _bfd_filnmlen; 10600 bfd_boolean _bfd_coff_long_filenames; 10601 10602 bfd_boolean _bfd_coff_long_section_names; 10603 bfd_boolean (*_bfd_coff_set_long_section_names) 10604 (bfd *, int); 10605 10606 unsigned int _bfd_coff_default_section_alignment_power; 10607 bfd_boolean _bfd_coff_force_symnames_in_strings; 10608 unsigned int _bfd_coff_debug_string_prefix_length; 10609 unsigned int _bfd_coff_max_nscns; 10610 10611 void (*_bfd_coff_swap_filehdr_in) 10612 (bfd *, void *, void *); 10613 10614 void (*_bfd_coff_swap_aouthdr_in) 10615 (bfd *, void *, void *); 10616 10617 void (*_bfd_coff_swap_scnhdr_in) 10618 (bfd *, void *, void *); 10619 10620 void (*_bfd_coff_swap_reloc_in) 10621 (bfd *abfd, void *, void *); 10622 10623 bfd_boolean (*_bfd_coff_bad_format_hook) 10624 (bfd *, void *); 10625 10626 bfd_boolean (*_bfd_coff_set_arch_mach_hook) 10627 (bfd *, void *); 10628 10629 void * (*_bfd_coff_mkobject_hook) 10630 (bfd *, void *, void *); 10631 10632 bfd_boolean (*_bfd_styp_to_sec_flags_hook) 10633 (bfd *, void *, const char *, asection *, flagword *); 10634 10635 void (*_bfd_set_alignment_hook) 10636 (bfd *, asection *, void *); 10637 10638 bfd_boolean (*_bfd_coff_slurp_symbol_table) 10639 (bfd *); 10640 10641 bfd_boolean (*_bfd_coff_symname_in_debug) 10642 (bfd *, struct internal_syment *); 10643 10644 bfd_boolean (*_bfd_coff_pointerize_aux_hook) 10645 (bfd *, combined_entry_type *, combined_entry_type *, 10646 unsigned int, combined_entry_type *); 10647 10648 bfd_boolean (*_bfd_coff_print_aux) 10649 (bfd *, FILE *, combined_entry_type *, combined_entry_type *, 10650 combined_entry_type *, unsigned int); 10651 10652 void (*_bfd_coff_reloc16_extra_cases) 10653 (bfd *, struct bfd_link_info *, struct bfd_link_order *, arelent *, 10654 bfd_byte *, unsigned int *, unsigned int *); 10655 10656 int (*_bfd_coff_reloc16_estimate) 10657 (bfd *, asection *, arelent *, unsigned int, 10658 struct bfd_link_info *); 10659 10660 enum coff_symbol_classification (*_bfd_coff_classify_symbol) 10661 (bfd *, struct internal_syment *); 10662 10663 bfd_boolean (*_bfd_coff_compute_section_file_positions) 10664 (bfd *); 10665 10666 bfd_boolean (*_bfd_coff_start_final_link) 10667 (bfd *, struct bfd_link_info *); 10668 10669 bfd_boolean (*_bfd_coff_relocate_section) 10670 (bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, 10671 struct internal_reloc *, struct internal_syment *, asection **); 10672 10673 reloc_howto_type *(*_bfd_coff_rtype_to_howto) 10674 (bfd *, asection *, struct internal_reloc *, 10675 struct coff_link_hash_entry *, struct internal_syment *, 10676 bfd_vma *); 10677 10678 bfd_boolean (*_bfd_coff_adjust_symndx) 10679 (bfd *, struct bfd_link_info *, bfd *, asection *, 10680 struct internal_reloc *, bfd_boolean *); 10681 10682 bfd_boolean (*_bfd_coff_link_add_one_symbol) 10683 (struct bfd_link_info *, bfd *, const char *, flagword, 10684 asection *, bfd_vma, const char *, bfd_boolean, bfd_boolean, 10685 struct bfd_link_hash_entry **); 10686 10687 bfd_boolean (*_bfd_coff_link_output_has_begun) 10688 (bfd *, struct coff_final_link_info *); 10689 10690 bfd_boolean (*_bfd_coff_final_link_postscript) 10691 (bfd *, struct coff_final_link_info *); 10692 10693 bfd_boolean (*_bfd_coff_print_pdata) 10694 (bfd *, void *); 10695 10696 } bfd_coff_backend_data; 10697 10698 #define coff_backend_info(abfd) \ 10699 ((bfd_coff_backend_data *) (abfd)->xvec->backend_data) 10700 10701 #define bfd_coff_swap_aux_in(a,e,t,c,ind,num,i) \ 10702 ((coff_backend_info (a)->_bfd_coff_swap_aux_in) (a,e,t,c,ind,num,i)) 10703 10704 #define bfd_coff_swap_sym_in(a,e,i) \ 10705 ((coff_backend_info (a)->_bfd_coff_swap_sym_in) (a,e,i)) 10706 10707 #define bfd_coff_swap_lineno_in(a,e,i) \ 10708 ((coff_backend_info ( a)->_bfd_coff_swap_lineno_in) (a,e,i)) 10709 10710 #define bfd_coff_swap_reloc_out(abfd, i, o) \ 10711 ((coff_backend_info (abfd)->_bfd_coff_swap_reloc_out) (abfd, i, o)) 10712 10713 #define bfd_coff_swap_lineno_out(abfd, i, o) \ 10714 ((coff_backend_info (abfd)->_bfd_coff_swap_lineno_out) (abfd, i, o)) 10715 10716 #define bfd_coff_swap_aux_out(a,i,t,c,ind,num,o) \ 10717 ((coff_backend_info (a)->_bfd_coff_swap_aux_out) (a,i,t,c,ind,num,o)) 10718 10719 #define bfd_coff_swap_sym_out(abfd, i,o) \ 10720 ((coff_backend_info (abfd)->_bfd_coff_swap_sym_out) (abfd, i, o)) 10721 10722 #define bfd_coff_swap_scnhdr_out(abfd, i,o) \ 10723 ((coff_backend_info (abfd)->_bfd_coff_swap_scnhdr_out) (abfd, i, o)) 10724 10725 #define bfd_coff_swap_filehdr_out(abfd, i,o) \ 10726 ((coff_backend_info (abfd)->_bfd_coff_swap_filehdr_out) (abfd, i, o)) 10727 10728 #define bfd_coff_swap_aouthdr_out(abfd, i,o) \ 10729 ((coff_backend_info (abfd)->_bfd_coff_swap_aouthdr_out) (abfd, i, o)) 10730 10731 #define bfd_coff_filhsz(abfd) (coff_backend_info (abfd)->_bfd_filhsz) 10732 #define bfd_coff_aoutsz(abfd) (coff_backend_info (abfd)->_bfd_aoutsz) 10733 #define bfd_coff_scnhsz(abfd) (coff_backend_info (abfd)->_bfd_scnhsz) 10734 #define bfd_coff_symesz(abfd) (coff_backend_info (abfd)->_bfd_symesz) 10735 #define bfd_coff_auxesz(abfd) (coff_backend_info (abfd)->_bfd_auxesz) 10736 #define bfd_coff_relsz(abfd) (coff_backend_info (abfd)->_bfd_relsz) 10737 #define bfd_coff_linesz(abfd) (coff_backend_info (abfd)->_bfd_linesz) 10738 #define bfd_coff_filnmlen(abfd) (coff_backend_info (abfd)->_bfd_filnmlen) 10739 #define bfd_coff_long_filenames(abfd) \ 10740 (coff_backend_info (abfd)->_bfd_coff_long_filenames) 10741 #define bfd_coff_long_section_names(abfd) \ 10742 (coff_backend_info (abfd)->_bfd_coff_long_section_names) 10743 #define bfd_coff_set_long_section_names(abfd, enable) \ 10744 ((coff_backend_info (abfd)->_bfd_coff_set_long_section_names) (abfd, enable)) 10745 #define bfd_coff_default_section_alignment_power(abfd) \ 10746 (coff_backend_info (abfd)->_bfd_coff_default_section_alignment_power) 10747 #define bfd_coff_max_nscns(abfd) \ 10748 (coff_backend_info (abfd)->_bfd_coff_max_nscns) 10749 10750 #define bfd_coff_swap_filehdr_in(abfd, i,o) \ 10751 ((coff_backend_info (abfd)->_bfd_coff_swap_filehdr_in) (abfd, i, o)) 10752 10753 #define bfd_coff_swap_aouthdr_in(abfd, i,o) \ 10754 ((coff_backend_info (abfd)->_bfd_coff_swap_aouthdr_in) (abfd, i, o)) 10755 10756 #define bfd_coff_swap_scnhdr_in(abfd, i,o) \ 10757 ((coff_backend_info (abfd)->_bfd_coff_swap_scnhdr_in) (abfd, i, o)) 10758 10759 #define bfd_coff_swap_reloc_in(abfd, i, o) \ 10760 ((coff_backend_info (abfd)->_bfd_coff_swap_reloc_in) (abfd, i, o)) 10761 10762 #define bfd_coff_bad_format_hook(abfd, filehdr) \ 10763 ((coff_backend_info (abfd)->_bfd_coff_bad_format_hook) (abfd, filehdr)) 10764 10765 #define bfd_coff_set_arch_mach_hook(abfd, filehdr)\ 10766 ((coff_backend_info (abfd)->_bfd_coff_set_arch_mach_hook) (abfd, filehdr)) 10767 #define bfd_coff_mkobject_hook(abfd, filehdr, aouthdr)\ 10768 ((coff_backend_info (abfd)->_bfd_coff_mkobject_hook)\ 10769 (abfd, filehdr, aouthdr)) 10770 10771 #define bfd_coff_styp_to_sec_flags_hook(abfd, scnhdr, name, section, flags_ptr)\ 10772 ((coff_backend_info (abfd)->_bfd_styp_to_sec_flags_hook)\ 10773 (abfd, scnhdr, name, section, flags_ptr)) 10774 10775 #define bfd_coff_set_alignment_hook(abfd, sec, scnhdr)\ 10776 ((coff_backend_info (abfd)->_bfd_set_alignment_hook) (abfd, sec, scnhdr)) 10777 10778 #define bfd_coff_slurp_symbol_table(abfd)\ 10779 ((coff_backend_info (abfd)->_bfd_coff_slurp_symbol_table) (abfd)) 10780 10781 #define bfd_coff_symname_in_debug(abfd, sym)\ 10782 ((coff_backend_info (abfd)->_bfd_coff_symname_in_debug) (abfd, sym)) 10783 10784 #define bfd_coff_force_symnames_in_strings(abfd)\ 10785 (coff_backend_info (abfd)->_bfd_coff_force_symnames_in_strings) 10786 10787 #define bfd_coff_debug_string_prefix_length(abfd)\ 10788 (coff_backend_info (abfd)->_bfd_coff_debug_string_prefix_length) 10789 10790 #define bfd_coff_print_aux(abfd, file, base, symbol, aux, indaux)\ 10791 ((coff_backend_info (abfd)->_bfd_coff_print_aux)\ 10792 (abfd, file, base, symbol, aux, indaux)) 10793 10794 #define bfd_coff_reloc16_extra_cases(abfd, link_info, link_order,\ 10795 reloc, data, src_ptr, dst_ptr)\ 10796 ((coff_backend_info (abfd)->_bfd_coff_reloc16_extra_cases)\ 10797 (abfd, link_info, link_order, reloc, data, src_ptr, dst_ptr)) 10798 10799 #define bfd_coff_reloc16_estimate(abfd, section, reloc, shrink, link_info)\ 10800 ((coff_backend_info (abfd)->_bfd_coff_reloc16_estimate)\ 10801 (abfd, section, reloc, shrink, link_info)) 10802 10803 #define bfd_coff_classify_symbol(abfd, sym)\ 10804 ((coff_backend_info (abfd)->_bfd_coff_classify_symbol)\ 10805 (abfd, sym)) 10806 10807 #define bfd_coff_compute_section_file_positions(abfd)\ 10808 ((coff_backend_info (abfd)->_bfd_coff_compute_section_file_positions)\ 10809 (abfd)) 10810 10811 #define bfd_coff_start_final_link(obfd, info)\ 10812 ((coff_backend_info (obfd)->_bfd_coff_start_final_link)\ 10813 (obfd, info)) 10814 #define bfd_coff_relocate_section(obfd,info,ibfd,o,con,rel,isyms,secs)\ 10815 ((coff_backend_info (ibfd)->_bfd_coff_relocate_section)\ 10816 (obfd, info, ibfd, o, con, rel, isyms, secs)) 10817 #define bfd_coff_rtype_to_howto(abfd, sec, rel, h, sym, addendp)\ 10818 ((coff_backend_info (abfd)->_bfd_coff_rtype_to_howto)\ 10819 (abfd, sec, rel, h, sym, addendp)) 10820 #define bfd_coff_adjust_symndx(obfd, info, ibfd, sec, rel, adjustedp)\ 10821 ((coff_backend_info (abfd)->_bfd_coff_adjust_symndx)\ 10822 (obfd, info, ibfd, sec, rel, adjustedp)) 10823 #define bfd_coff_link_add_one_symbol(info, abfd, name, flags, section,\ 10824 value, string, cp, coll, hashp)\ 10825 ((coff_backend_info (abfd)->_bfd_coff_link_add_one_symbol)\ 10826 (info, abfd, name, flags, section, value, string, cp, coll, hashp)) 10827 10828 #define bfd_coff_link_output_has_begun(a,p) \ 10829 ((coff_backend_info (a)->_bfd_coff_link_output_has_begun) (a, p)) 10830 #define bfd_coff_final_link_postscript(a,p) \ 10831 ((coff_backend_info (a)->_bfd_coff_final_link_postscript) (a, p)) 10832 10833 #define bfd_coff_have_print_pdata(a) \ 10834 (coff_backend_info (a)->_bfd_coff_print_pdata) 10835 #define bfd_coff_print_pdata(a,p) \ 10836 ((coff_backend_info (a)->_bfd_coff_print_pdata) (a, p)) 10837 10838 /* Macro: Returns true if the bfd is a PE executable as opposed to a 10839 PE object file. */ 10840 #define bfd_pei_p(abfd) \ 10841 (CONST_STRNEQ ((abfd)->xvec->name, "pei-")) 10842 108433.3.2.8 Writing relocations 10844........................... 10845 10846To write relocations, the back end steps though the canonical 10847relocation table and create an `internal_reloc'. The symbol index to 10848use is removed from the `offset' field in the symbol table supplied. 10849The address comes directly from the sum of the section base address and 10850the relocation offset; the type is dug directly from the howto field. 10851Then the `internal_reloc' is swapped into the shape of an 10852`external_reloc' and written out to disk. 10853 108543.3.2.9 Reading linenumbers 10855........................... 10856 10857Creating the linenumber table is done by reading in the entire coff 10858linenumber table, and creating another table for internal use. 10859 10860 A coff linenumber table is structured so that each function is 10861marked as having a line number of 0. Each line within the function is 10862an offset from the first line in the function. The base of the line 10863number information for the table is stored in the symbol associated 10864with the function. 10865 10866 Note: The PE format uses line number 0 for a flag indicating a new 10867source file. 10868 10869 The information is copied from the external to the internal table, 10870and each symbol which marks a function is marked by pointing its... 10871 10872 How does this work ? 10873 108743.3.2.10 Reading relocations 10875............................ 10876 10877Coff relocations are easily transformed into the internal BFD form 10878(`arelent'). 10879 10880 Reading a coff relocation table is done in the following stages: 10881 10882 * Read the entire coff relocation table into memory. 10883 10884 * Process each relocation in turn; first swap it from the external 10885 to the internal form. 10886 10887 * Turn the symbol referenced in the relocation's symbol index into a 10888 pointer into the canonical symbol table. This table is the same 10889 as the one returned by a call to `bfd_canonicalize_symtab'. The 10890 back end will call that routine and save the result if a 10891 canonicalization hasn't been done. 10892 10893 * The reloc index is turned into a pointer to a howto structure, in 10894 a back end specific way. For instance, the 386 and 960 use the 10895 `r_type' to directly produce an index into a howto table vector; 10896 the 88k subtracts a number from the `r_type' field and creates an 10897 addend field. 10898 10899 10900File: bfd.info, Node: elf, Next: mmo, Prev: coff, Up: BFD back ends 10901 109023.4 ELF backends 10903================ 10904 10905BFD support for ELF formats is being worked on. Currently, the best 10906supported back ends are for sparc and i386 (running svr4 or Solaris 2). 10907 10908 Documentation of the internals of the support code still needs to be 10909written. The code is changing quickly enough that we haven't bothered 10910yet. 10911 10912 10913File: bfd.info, Node: mmo, Prev: elf, Up: BFD back ends 10914 109153.5 mmo backend 10916=============== 10917 10918The mmo object format is used exclusively together with Professor 10919Donald E. Knuth's educational 64-bit processor MMIX. The simulator 10920`mmix' which is available at `http://mmix.cs.hm.edu/src/index.html' 10921understands this format. That package also includes a combined 10922assembler and linker called `mmixal'. The mmo format has no advantages 10923feature-wise compared to e.g. ELF. It is a simple non-relocatable 10924object format with no support for archives or debugging information, 10925except for symbol value information and line numbers (which is not yet 10926implemented in BFD). See `http://mmix.cs.hm.edu/' for more information 10927about MMIX. The ELF format is used for intermediate object files in 10928the BFD implementation. 10929 10930* Menu: 10931 10932* File layout:: 10933* Symbol-table:: 10934* mmo section mapping:: 10935 10936 10937File: bfd.info, Node: File layout, Next: Symbol-table, Prev: mmo, Up: mmo 10938 109393.5.1 File layout 10940----------------- 10941 10942The mmo file contents is not partitioned into named sections as with 10943e.g. ELF. Memory areas is formed by specifying the location of the 10944data that follows. Only the memory area `0x0000...00' to `0x01ff...ff' 10945is executable, so it is used for code (and constants) and the area 10946`0x2000...00' to `0x20ff...ff' is used for writable data. *Note mmo 10947section mapping::. 10948 10949 There is provision for specifying "special data" of 65536 different 10950types. We use type 80 (decimal), arbitrarily chosen the same as the 10951ELF `e_machine' number for MMIX, filling it with section information 10952normally found in ELF objects. *Note mmo section mapping::. 10953 10954 Contents is entered as 32-bit words, xor:ed over previous contents, 10955always zero-initialized. A word that starts with the byte `0x98' forms 10956a command called a `lopcode', where the next byte distinguished between 10957the thirteen lopcodes. The two remaining bytes, called the `Y' and `Z' 10958fields, or the `YZ' field (a 16-bit big-endian number), are used for 10959various purposes different for each lopcode. As documented in 10960`http://mmix.cs.hm.edu/doc/mmixal.pdf', the lopcodes are: 10961 10962`lop_quote' 10963 0x98000001. The next word is contents, regardless of whether it 10964 starts with 0x98 or not. 10965 10966`lop_loc' 10967 0x9801YYZZ, where `Z' is 1 or 2. This is a location directive, 10968 setting the location for the next data to the next 32-bit word 10969 (for Z = 1) or 64-bit word (for Z = 2), plus Y * 2^56. Normally 10970 `Y' is 0 for the text segment and 2 for the data segment. Beware 10971 that the low bits of non- tetrabyte-aligned values are silently 10972 discarded when being automatically incremented and when storing 10973 contents (in contrast to e.g. its use as current location when 10974 followed by lop_fixo et al before the next possibly-quoted 10975 tetrabyte contents). 10976 10977`lop_skip' 10978 0x9802YYZZ. Increase the current location by `YZ' bytes. 10979 10980`lop_fixo' 10981 0x9803YYZZ, where `Z' is 1 or 2. Store the current location as 64 10982 bits into the location pointed to by the next 32-bit (Z = 1) or 10983 64-bit (Z = 2) word, plus Y * 2^56. 10984 10985`lop_fixr' 10986 0x9804YYZZ. `YZ' is stored into the current location plus 2 - 4 * 10987 YZ. 10988 10989`lop_fixrx' 10990 0x980500ZZ. `Z' is 16 or 24. A value `L' derived from the 10991 following 32-bit word are used in a manner similar to `YZ' in 10992 lop_fixr: it is xor:ed into the current location minus 4 * L. The 10993 first byte of the word is 0 or 1. If it is 1, then L = (LOWEST 24 10994 BITS OF WORD) - 2^Z, if 0, then L = (LOWEST 24 BITS OF WORD). 10995 10996`lop_file' 10997 0x9806YYZZ. `Y' is the file number, `Z' is count of 32-bit words. 10998 Set the file number to `Y' and the line counter to 0. The next Z 10999 * 4 bytes contain the file name, padded with zeros if the count is 11000 not a multiple of four. The same `Y' may occur multiple times, 11001 but `Z' must be 0 for all but the first occurrence. 11002 11003`lop_line' 11004 0x9807YYZZ. `YZ' is the line number. Together with lop_file, it 11005 forms the source location for the next 32-bit word. Note that for 11006 each non-lopcode 32-bit word, line numbers are assumed incremented 11007 by one. 11008 11009`lop_spec' 11010 0x9808YYZZ. `YZ' is the type number. Data until the next lopcode 11011 other than lop_quote forms special data of type `YZ'. *Note mmo 11012 section mapping::. 11013 11014 Other types than 80, (or type 80 with a content that does not 11015 parse) is stored in sections named `.MMIX.spec_data.N' where N is 11016 the `YZ'-type. The flags for such a sections say not to allocate 11017 or load the data. The vma is 0. Contents of multiple occurrences 11018 of special data N is concatenated to the data of the previous 11019 lop_spec Ns. The location in data or code at which the lop_spec 11020 occurred is lost. 11021 11022`lop_pre' 11023 0x980901ZZ. The first lopcode in a file. The `Z' field forms the 11024 length of header information in 32-bit words, where the first word 11025 tells the time in seconds since `00:00:00 GMT Jan 1 1970'. 11026 11027`lop_post' 11028 0x980a00ZZ. Z > 32. This lopcode follows after all 11029 content-generating lopcodes in a program. The `Z' field denotes 11030 the value of `rG' at the beginning of the program. The following 11031 256 - Z big-endian 64-bit words are loaded into global registers 11032 `$G' ... `$255'. 11033 11034`lop_stab' 11035 0x980b0000. The next-to-last lopcode in a program. Must follow 11036 immediately after the lop_post lopcode and its data. After this 11037 lopcode follows all symbols in a compressed format (*note 11038 Symbol-table::). 11039 11040`lop_end' 11041 0x980cYYZZ. The last lopcode in a program. It must follow the 11042 lop_stab lopcode and its data. The `YZ' field contains the number 11043 of 32-bit words of symbol table information after the preceding 11044 lop_stab lopcode. 11045 11046 Note that the lopcode "fixups"; `lop_fixr', `lop_fixrx' and 11047`lop_fixo' are not generated by BFD, but are handled. They are 11048generated by `mmixal'. 11049 11050 This trivial one-label, one-instruction file: 11051 11052 :Main TRAP 1,2,3 11053 11054 can be represented this way in mmo: 11055 11056 0x98090101 - lop_pre, one 32-bit word with timestamp. 11057 <timestamp> 11058 0x98010002 - lop_loc, text segment, using a 64-bit address. 11059 Note that mmixal does not emit this for the file above. 11060 0x00000000 - Address, high 32 bits. 11061 0x00000000 - Address, low 32 bits. 11062 0x98060002 - lop_file, 2 32-bit words for file-name. 11063 0x74657374 - "test" 11064 0x2e730000 - ".s\0\0" 11065 0x98070001 - lop_line, line 1. 11066 0x00010203 - TRAP 1,2,3 11067 0x980a00ff - lop_post, setting $255 to 0. 11068 0x00000000 11069 0x00000000 11070 0x980b0000 - lop_stab for ":Main" = 0, serial 1. 11071 0x203a4040 *Note Symbol-table::. 11072 0x10404020 11073 0x4d206120 11074 0x69016e00 11075 0x81000000 11076 0x980c0005 - lop_end; symbol table contained five 32-bit words. 11077 11078 11079File: bfd.info, Node: Symbol-table, Next: mmo section mapping, Prev: File layout, Up: mmo 11080 110813.5.2 Symbol table format 11082------------------------- 11083 11084From mmixal.w (or really, the generated mmixal.tex) in the MMIXware 11085package which also contains the `mmix' simulator: "Symbols are stored 11086and retrieved by means of a `ternary search trie', following ideas of 11087Bentley and Sedgewick. (See ACM-SIAM Symp. on Discrete Algorithms `8' 11088(1997), 360-369; R.Sedgewick, `Algorithms in C' (Reading, Mass. 11089Addison-Wesley, 1998), `15.4'.) Each trie node stores a character, and 11090there are branches to subtries for the cases where a given character is 11091less than, equal to, or greater than the character in the trie. There 11092also is a pointer to a symbol table entry if a symbol ends at the 11093current node." 11094 11095 So it's a tree encoded as a stream of bytes. The stream of bytes 11096acts on a single virtual global symbol, adding and removing characters 11097and signalling complete symbol points. Here, we read the stream and 11098create symbols at the completion points. 11099 11100 First, there's a control byte `m'. If any of the listed bits in `m' 11101is nonzero, we execute what stands at the right, in the listed order: 11102 11103 (MMO3_LEFT) 11104 0x40 - Traverse left trie. 11105 (Read a new command byte and recurse.) 11106 11107 (MMO3_SYMBITS) 11108 0x2f - Read the next byte as a character and store it in the 11109 current character position; increment character position. 11110 Test the bits of `m': 11111 11112 (MMO3_WCHAR) 11113 0x80 - The character is 16-bit (so read another byte, 11114 merge into current character. 11115 11116 (MMO3_TYPEBITS) 11117 0xf - We have a complete symbol; parse the type, value 11118 and serial number and do what should be done 11119 with a symbol. The type and length information 11120 is in j = (m & 0xf). 11121 11122 (MMO3_REGQUAL_BITS) 11123 j == 0xf: A register variable. The following 11124 byte tells which register. 11125 j <= 8: An absolute symbol. Read j bytes as the 11126 big-endian number the symbol equals. 11127 A j = 2 with two zero bytes denotes an 11128 unknown symbol. 11129 j > 8: As with j <= 8, but add (0x20 << 56) 11130 to the value in the following j - 8 11131 bytes. 11132 11133 Then comes the serial number, as a variant of 11134 uleb128, but better named ubeb128: 11135 Read bytes and shift the previous value left 7 11136 (multiply by 128). Add in the new byte, repeat 11137 until a byte has bit 7 set. The serial number 11138 is the computed value minus 128. 11139 11140 (MMO3_MIDDLE) 11141 0x20 - Traverse middle trie. (Read a new command byte 11142 and recurse.) Decrement character position. 11143 11144 (MMO3_RIGHT) 11145 0x10 - Traverse right trie. (Read a new command byte and 11146 recurse.) 11147 11148 Let's look again at the `lop_stab' for the trivial file (*note File 11149layout::). 11150 11151 0x980b0000 - lop_stab for ":Main" = 0, serial 1. 11152 0x203a4040 11153 0x10404020 11154 0x4d206120 11155 0x69016e00 11156 0x81000000 11157 11158 This forms the trivial trie (note that the path between ":" and "M" 11159is redundant): 11160 11161 203a ":" 11162 40 / 11163 40 / 11164 10 \ 11165 40 / 11166 40 / 11167 204d "M" 11168 2061 "a" 11169 2069 "i" 11170 016e "n" is the last character in a full symbol, and 11171 with a value represented in one byte. 11172 00 The value is 0. 11173 81 The serial number is 1. 11174 11175 11176File: bfd.info, Node: mmo section mapping, Prev: Symbol-table, Up: mmo 11177 111783.5.3 mmo section mapping 11179------------------------- 11180 11181The implementation in BFD uses special data type 80 (decimal) to 11182encapsulate and describe named sections, containing e.g. debug 11183information. If needed, any datum in the encapsulation will be quoted 11184using lop_quote. First comes a 32-bit word holding the number of 1118532-bit words containing the zero-terminated zero-padded segment name. 11186After the name there's a 32-bit word holding flags describing the 11187section type. Then comes a 64-bit big-endian word with the section 11188length (in bytes), then another with the section start address. 11189Depending on the type of section, the contents might follow, 11190zero-padded to 32-bit boundary. For a loadable section (such as data 11191or code), the contents might follow at some later point, not 11192necessarily immediately, as a lop_loc with the same start address as in 11193the section description, followed by the contents. This in effect 11194forms a descriptor that must be emitted before the actual contents. 11195Sections described this way must not overlap. 11196 11197 For areas that don't have such descriptors, synthetic sections are 11198formed by BFD. Consecutive contents in the two memory areas 11199`0x0000...00' to `0x01ff...ff' and `0x2000...00' to `0x20ff...ff' are 11200entered in sections named `.text' and `.data' respectively. If an area 11201is not otherwise described, but would together with a neighboring lower 11202area be less than `0x40000000' bytes long, it is joined with the lower 11203area and the gap is zero-filled. For other cases, a new section is 11204formed, named `.MMIX.sec.N'. Here, N is a number, a running count 11205through the mmo file, starting at 0. 11206 11207 A loadable section specified as: 11208 11209 .section secname,"ax" 11210 TETRA 1,2,3,4,-1,-2009 11211 BYTE 80 11212 11213 and linked to address `0x4', is represented by the sequence: 11214 11215 0x98080050 - lop_spec 80 11216 0x00000002 - two 32-bit words for the section name 11217 0x7365636e - "secn" 11218 0x616d6500 - "ame\0" 11219 0x00000033 - flags CODE, READONLY, LOAD, ALLOC 11220 0x00000000 - high 32 bits of section length 11221 0x0000001c - section length is 28 bytes; 6 * 4 + 1 + alignment to 32 bits 11222 0x00000000 - high 32 bits of section address 11223 0x00000004 - section address is 4 11224 0x98010002 - 64 bits with address of following data 11225 0x00000000 - high 32 bits of address 11226 0x00000004 - low 32 bits: data starts at address 4 11227 0x00000001 - 1 11228 0x00000002 - 2 11229 0x00000003 - 3 11230 0x00000004 - 4 11231 0xffffffff - -1 11232 0xfffff827 - -2009 11233 0x50000000 - 80 as a byte, padded with zeros. 11234 11235 Note that the lop_spec wrapping does not include the section 11236contents. Compare this to a non-loaded section specified as: 11237 11238 .section thirdsec 11239 TETRA 200001,100002 11240 BYTE 38,40 11241 11242 This, when linked to address `0x200000000000001c', is represented by: 11243 11244 0x98080050 - lop_spec 80 11245 0x00000002 - two 32-bit words for the section name 11246 0x7365636e - "thir" 11247 0x616d6500 - "dsec" 11248 0x00000010 - flag READONLY 11249 0x00000000 - high 32 bits of section length 11250 0x0000000c - section length is 12 bytes; 2 * 4 + 2 + alignment to 32 bits 11251 0x20000000 - high 32 bits of address 11252 0x0000001c - low 32 bits of address 0x200000000000001c 11253 0x00030d41 - 200001 11254 0x000186a2 - 100002 11255 0x26280000 - 38, 40 as bytes, padded with zeros 11256 11257 For the latter example, the section contents must not be loaded in 11258memory, and is therefore specified as part of the special data. The 11259address is usually unimportant but might provide information for e.g. 11260the DWARF 2 debugging format. 11261 11262 11263File: bfd.info, Node: GNU Free Documentation License, Next: BFD Index, Prev: BFD back ends, Up: Top 11264 11265 Version 1.3, 3 November 2008 11266 11267 Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. 11268 `http://fsf.org/' 11269 11270 Everyone is permitted to copy and distribute verbatim copies 11271 of this license document, but changing it is not allowed. 11272 11273 0. PREAMBLE 11274 11275 The purpose of this License is to make a manual, textbook, or other 11276 functional and useful document "free" in the sense of freedom: to 11277 assure everyone the effective freedom to copy and redistribute it, 11278 with or without modifying it, either commercially or 11279 noncommercially. Secondarily, this License preserves for the 11280 author and publisher a way to get credit for their work, while not 11281 being considered responsible for modifications made by others. 11282 11283 This License is a kind of "copyleft", which means that derivative 11284 works of the document must themselves be free in the same sense. 11285 It complements the GNU General Public License, which is a copyleft 11286 license designed for free software. 11287 11288 We have designed this License in order to use it for manuals for 11289 free software, because free software needs free documentation: a 11290 free program should come with manuals providing the same freedoms 11291 that the software does. But this License is not limited to 11292 software manuals; it can be used for any textual work, regardless 11293 of subject matter or whether it is published as a printed book. 11294 We recommend this License principally for works whose purpose is 11295 instruction or reference. 11296 11297 1. APPLICABILITY AND DEFINITIONS 11298 11299 This License applies to any manual or other work, in any medium, 11300 that contains a notice placed by the copyright holder saying it 11301 can be distributed under the terms of this License. Such a notice 11302 grants a world-wide, royalty-free license, unlimited in duration, 11303 to use that work under the conditions stated herein. The 11304 "Document", below, refers to any such manual or work. Any member 11305 of the public is a licensee, and is addressed as "you". You 11306 accept the license if you copy, modify or distribute the work in a 11307 way requiring permission under copyright law. 11308 11309 A "Modified Version" of the Document means any work containing the 11310 Document or a portion of it, either copied verbatim, or with 11311 modifications and/or translated into another language. 11312 11313 A "Secondary Section" is a named appendix or a front-matter section 11314 of the Document that deals exclusively with the relationship of the 11315 publishers or authors of the Document to the Document's overall 11316 subject (or to related matters) and contains nothing that could 11317 fall directly within that overall subject. (Thus, if the Document 11318 is in part a textbook of mathematics, a Secondary Section may not 11319 explain any mathematics.) The relationship could be a matter of 11320 historical connection with the subject or with related matters, or 11321 of legal, commercial, philosophical, ethical or political position 11322 regarding them. 11323 11324 The "Invariant Sections" are certain Secondary Sections whose 11325 titles are designated, as being those of Invariant Sections, in 11326 the notice that says that the Document is released under this 11327 License. If a section does not fit the above definition of 11328 Secondary then it is not allowed to be designated as Invariant. 11329 The Document may contain zero Invariant Sections. If the Document 11330 does not identify any Invariant Sections then there are none. 11331 11332 The "Cover Texts" are certain short passages of text that are 11333 listed, as Front-Cover Texts or Back-Cover Texts, in the notice 11334 that says that the Document is released under this License. A 11335 Front-Cover Text may be at most 5 words, and a Back-Cover Text may 11336 be at most 25 words. 11337 11338 A "Transparent" copy of the Document means a machine-readable copy, 11339 represented in a format whose specification is available to the 11340 general public, that is suitable for revising the document 11341 straightforwardly with generic text editors or (for images 11342 composed of pixels) generic paint programs or (for drawings) some 11343 widely available drawing editor, and that is suitable for input to 11344 text formatters or for automatic translation to a variety of 11345 formats suitable for input to text formatters. A copy made in an 11346 otherwise Transparent file format whose markup, or absence of 11347 markup, has been arranged to thwart or discourage subsequent 11348 modification by readers is not Transparent. An image format is 11349 not Transparent if used for any substantial amount of text. A 11350 copy that is not "Transparent" is called "Opaque". 11351 11352 Examples of suitable formats for Transparent copies include plain 11353 ASCII without markup, Texinfo input format, LaTeX input format, 11354 SGML or XML using a publicly available DTD, and 11355 standard-conforming simple HTML, PostScript or PDF designed for 11356 human modification. Examples of transparent image formats include 11357 PNG, XCF and JPG. Opaque formats include proprietary formats that 11358 can be read and edited only by proprietary word processors, SGML or 11359 XML for which the DTD and/or processing tools are not generally 11360 available, and the machine-generated HTML, PostScript or PDF 11361 produced by some word processors for output purposes only. 11362 11363 The "Title Page" means, for a printed book, the title page itself, 11364 plus such following pages as are needed to hold, legibly, the 11365 material this License requires to appear in the title page. For 11366 works in formats which do not have any title page as such, "Title 11367 Page" means the text near the most prominent appearance of the 11368 work's title, preceding the beginning of the body of the text. 11369 11370 The "publisher" means any person or entity that distributes copies 11371 of the Document to the public. 11372 11373 A section "Entitled XYZ" means a named subunit of the Document 11374 whose title either is precisely XYZ or contains XYZ in parentheses 11375 following text that translates XYZ in another language. (Here XYZ 11376 stands for a specific section name mentioned below, such as 11377 "Acknowledgements", "Dedications", "Endorsements", or "History".) 11378 To "Preserve the Title" of such a section when you modify the 11379 Document means that it remains a section "Entitled XYZ" according 11380 to this definition. 11381 11382 The Document may include Warranty Disclaimers next to the notice 11383 which states that this License applies to the Document. These 11384 Warranty Disclaimers are considered to be included by reference in 11385 this License, but only as regards disclaiming warranties: any other 11386 implication that these Warranty Disclaimers may have is void and 11387 has no effect on the meaning of this License. 11388 11389 2. VERBATIM COPYING 11390 11391 You may copy and distribute the Document in any medium, either 11392 commercially or noncommercially, provided that this License, the 11393 copyright notices, and the license notice saying this License 11394 applies to the Document are reproduced in all copies, and that you 11395 add no other conditions whatsoever to those of this License. You 11396 may not use technical measures to obstruct or control the reading 11397 or further copying of the copies you make or distribute. However, 11398 you may accept compensation in exchange for copies. If you 11399 distribute a large enough number of copies you must also follow 11400 the conditions in section 3. 11401 11402 You may also lend copies, under the same conditions stated above, 11403 and you may publicly display copies. 11404 11405 3. COPYING IN QUANTITY 11406 11407 If you publish printed copies (or copies in media that commonly 11408 have printed covers) of the Document, numbering more than 100, and 11409 the Document's license notice requires Cover Texts, you must 11410 enclose the copies in covers that carry, clearly and legibly, all 11411 these Cover Texts: Front-Cover Texts on the front cover, and 11412 Back-Cover Texts on the back cover. Both covers must also clearly 11413 and legibly identify you as the publisher of these copies. The 11414 front cover must present the full title with all words of the 11415 title equally prominent and visible. You may add other material 11416 on the covers in addition. Copying with changes limited to the 11417 covers, as long as they preserve the title of the Document and 11418 satisfy these conditions, can be treated as verbatim copying in 11419 other respects. 11420 11421 If the required texts for either cover are too voluminous to fit 11422 legibly, you should put the first ones listed (as many as fit 11423 reasonably) on the actual cover, and continue the rest onto 11424 adjacent pages. 11425 11426 If you publish or distribute Opaque copies of the Document 11427 numbering more than 100, you must either include a 11428 machine-readable Transparent copy along with each Opaque copy, or 11429 state in or with each Opaque copy a computer-network location from 11430 which the general network-using public has access to download 11431 using public-standard network protocols a complete Transparent 11432 copy of the Document, free of added material. If you use the 11433 latter option, you must take reasonably prudent steps, when you 11434 begin distribution of Opaque copies in quantity, to ensure that 11435 this Transparent copy will remain thus accessible at the stated 11436 location until at least one year after the last time you 11437 distribute an Opaque copy (directly or through your agents or 11438 retailers) of that edition to the public. 11439 11440 It is requested, but not required, that you contact the authors of 11441 the Document well before redistributing any large number of 11442 copies, to give them a chance to provide you with an updated 11443 version of the Document. 11444 11445 4. MODIFICATIONS 11446 11447 You may copy and distribute a Modified Version of the Document 11448 under the conditions of sections 2 and 3 above, provided that you 11449 release the Modified Version under precisely this License, with 11450 the Modified Version filling the role of the Document, thus 11451 licensing distribution and modification of the Modified Version to 11452 whoever possesses a copy of it. In addition, you must do these 11453 things in the Modified Version: 11454 11455 A. Use in the Title Page (and on the covers, if any) a title 11456 distinct from that of the Document, and from those of 11457 previous versions (which should, if there were any, be listed 11458 in the History section of the Document). You may use the 11459 same title as a previous version if the original publisher of 11460 that version gives permission. 11461 11462 B. List on the Title Page, as authors, one or more persons or 11463 entities responsible for authorship of the modifications in 11464 the Modified Version, together with at least five of the 11465 principal authors of the Document (all of its principal 11466 authors, if it has fewer than five), unless they release you 11467 from this requirement. 11468 11469 C. State on the Title page the name of the publisher of the 11470 Modified Version, as the publisher. 11471 11472 D. Preserve all the copyright notices of the Document. 11473 11474 E. Add an appropriate copyright notice for your modifications 11475 adjacent to the other copyright notices. 11476 11477 F. Include, immediately after the copyright notices, a license 11478 notice giving the public permission to use the Modified 11479 Version under the terms of this License, in the form shown in 11480 the Addendum below. 11481 11482 G. Preserve in that license notice the full lists of Invariant 11483 Sections and required Cover Texts given in the Document's 11484 license notice. 11485 11486 H. Include an unaltered copy of this License. 11487 11488 I. Preserve the section Entitled "History", Preserve its Title, 11489 and add to it an item stating at least the title, year, new 11490 authors, and publisher of the Modified Version as given on 11491 the Title Page. If there is no section Entitled "History" in 11492 the Document, create one stating the title, year, authors, 11493 and publisher of the Document as given on its Title Page, 11494 then add an item describing the Modified Version as stated in 11495 the previous sentence. 11496 11497 J. Preserve the network location, if any, given in the Document 11498 for public access to a Transparent copy of the Document, and 11499 likewise the network locations given in the Document for 11500 previous versions it was based on. These may be placed in 11501 the "History" section. You may omit a network location for a 11502 work that was published at least four years before the 11503 Document itself, or if the original publisher of the version 11504 it refers to gives permission. 11505 11506 K. For any section Entitled "Acknowledgements" or "Dedications", 11507 Preserve the Title of the section, and preserve in the 11508 section all the substance and tone of each of the contributor 11509 acknowledgements and/or dedications given therein. 11510 11511 L. Preserve all the Invariant Sections of the Document, 11512 unaltered in their text and in their titles. Section numbers 11513 or the equivalent are not considered part of the section 11514 titles. 11515 11516 M. Delete any section Entitled "Endorsements". Such a section 11517 may not be included in the Modified Version. 11518 11519 N. Do not retitle any existing section to be Entitled 11520 "Endorsements" or to conflict in title with any Invariant 11521 Section. 11522 11523 O. Preserve any Warranty Disclaimers. 11524 11525 If the Modified Version includes new front-matter sections or 11526 appendices that qualify as Secondary Sections and contain no 11527 material copied from the Document, you may at your option 11528 designate some or all of these sections as invariant. To do this, 11529 add their titles to the list of Invariant Sections in the Modified 11530 Version's license notice. These titles must be distinct from any 11531 other section titles. 11532 11533 You may add a section Entitled "Endorsements", provided it contains 11534 nothing but endorsements of your Modified Version by various 11535 parties--for example, statements of peer review or that the text 11536 has been approved by an organization as the authoritative 11537 definition of a standard. 11538 11539 You may add a passage of up to five words as a Front-Cover Text, 11540 and a passage of up to 25 words as a Back-Cover Text, to the end 11541 of the list of Cover Texts in the Modified Version. Only one 11542 passage of Front-Cover Text and one of Back-Cover Text may be 11543 added by (or through arrangements made by) any one entity. If the 11544 Document already includes a cover text for the same cover, 11545 previously added by you or by arrangement made by the same entity 11546 you are acting on behalf of, you may not add another; but you may 11547 replace the old one, on explicit permission from the previous 11548 publisher that added the old one. 11549 11550 The author(s) and publisher(s) of the Document do not by this 11551 License give permission to use their names for publicity for or to 11552 assert or imply endorsement of any Modified Version. 11553 11554 5. COMBINING DOCUMENTS 11555 11556 You may combine the Document with other documents released under 11557 this License, under the terms defined in section 4 above for 11558 modified versions, provided that you include in the combination 11559 all of the Invariant Sections of all of the original documents, 11560 unmodified, and list them all as Invariant Sections of your 11561 combined work in its license notice, and that you preserve all 11562 their Warranty Disclaimers. 11563 11564 The combined work need only contain one copy of this License, and 11565 multiple identical Invariant Sections may be replaced with a single 11566 copy. If there are multiple Invariant Sections with the same name 11567 but different contents, make the title of each such section unique 11568 by adding at the end of it, in parentheses, the name of the 11569 original author or publisher of that section if known, or else a 11570 unique number. Make the same adjustment to the section titles in 11571 the list of Invariant Sections in the license notice of the 11572 combined work. 11573 11574 In the combination, you must combine any sections Entitled 11575 "History" in the various original documents, forming one section 11576 Entitled "History"; likewise combine any sections Entitled 11577 "Acknowledgements", and any sections Entitled "Dedications". You 11578 must delete all sections Entitled "Endorsements." 11579 11580 6. COLLECTIONS OF DOCUMENTS 11581 11582 You may make a collection consisting of the Document and other 11583 documents released under this License, and replace the individual 11584 copies of this License in the various documents with a single copy 11585 that is included in the collection, provided that you follow the 11586 rules of this License for verbatim copying of each of the 11587 documents in all other respects. 11588 11589 You may extract a single document from such a collection, and 11590 distribute it individually under this License, provided you insert 11591 a copy of this License into the extracted document, and follow 11592 this License in all other respects regarding verbatim copying of 11593 that document. 11594 11595 7. AGGREGATION WITH INDEPENDENT WORKS 11596 11597 A compilation of the Document or its derivatives with other 11598 separate and independent documents or works, in or on a volume of 11599 a storage or distribution medium, is called an "aggregate" if the 11600 copyright resulting from the compilation is not used to limit the 11601 legal rights of the compilation's users beyond what the individual 11602 works permit. When the Document is included in an aggregate, this 11603 License does not apply to the other works in the aggregate which 11604 are not themselves derivative works of the Document. 11605 11606 If the Cover Text requirement of section 3 is applicable to these 11607 copies of the Document, then if the Document is less than one half 11608 of the entire aggregate, the Document's Cover Texts may be placed 11609 on covers that bracket the Document within the aggregate, or the 11610 electronic equivalent of covers if the Document is in electronic 11611 form. Otherwise they must appear on printed covers that bracket 11612 the whole aggregate. 11613 11614 8. TRANSLATION 11615 11616 Translation is considered a kind of modification, so you may 11617 distribute translations of the Document under the terms of section 11618 4. Replacing Invariant Sections with translations requires special 11619 permission from their copyright holders, but you may include 11620 translations of some or all Invariant Sections in addition to the 11621 original versions of these Invariant Sections. You may include a 11622 translation of this License, and all the license notices in the 11623 Document, and any Warranty Disclaimers, provided that you also 11624 include the original English version of this License and the 11625 original versions of those notices and disclaimers. In case of a 11626 disagreement between the translation and the original version of 11627 this License or a notice or disclaimer, the original version will 11628 prevail. 11629 11630 If a section in the Document is Entitled "Acknowledgements", 11631 "Dedications", or "History", the requirement (section 4) to 11632 Preserve its Title (section 1) will typically require changing the 11633 actual title. 11634 11635 9. TERMINATION 11636 11637 You may not copy, modify, sublicense, or distribute the Document 11638 except as expressly provided under this License. Any attempt 11639 otherwise to copy, modify, sublicense, or distribute it is void, 11640 and will automatically terminate your rights under this License. 11641 11642 However, if you cease all violation of this License, then your 11643 license from a particular copyright holder is reinstated (a) 11644 provisionally, unless and until the copyright holder explicitly 11645 and finally terminates your license, and (b) permanently, if the 11646 copyright holder fails to notify you of the violation by some 11647 reasonable means prior to 60 days after the cessation. 11648 11649 Moreover, your license from a particular copyright holder is 11650 reinstated permanently if the copyright holder notifies you of the 11651 violation by some reasonable means, this is the first time you have 11652 received notice of violation of this License (for any work) from 11653 that copyright holder, and you cure the violation prior to 30 days 11654 after your receipt of the notice. 11655 11656 Termination of your rights under this section does not terminate 11657 the licenses of parties who have received copies or rights from 11658 you under this License. If your rights have been terminated and 11659 not permanently reinstated, receipt of a copy of some or all of 11660 the same material does not give you any rights to use it. 11661 11662 10. FUTURE REVISIONS OF THIS LICENSE 11663 11664 The Free Software Foundation may publish new, revised versions of 11665 the GNU Free Documentation License from time to time. Such new 11666 versions will be similar in spirit to the present version, but may 11667 differ in detail to address new problems or concerns. See 11668 `http://www.gnu.org/copyleft/'. 11669 11670 Each version of the License is given a distinguishing version 11671 number. If the Document specifies that a particular numbered 11672 version of this License "or any later version" applies to it, you 11673 have the option of following the terms and conditions either of 11674 that specified version or of any later version that has been 11675 published (not as a draft) by the Free Software Foundation. If 11676 the Document does not specify a version number of this License, 11677 you may choose any version ever published (not as a draft) by the 11678 Free Software Foundation. If the Document specifies that a proxy 11679 can decide which future versions of this License can be used, that 11680 proxy's public statement of acceptance of a version permanently 11681 authorizes you to choose that version for the Document. 11682 11683 11. RELICENSING 11684 11685 "Massive Multiauthor Collaboration Site" (or "MMC Site") means any 11686 World Wide Web server that publishes copyrightable works and also 11687 provides prominent facilities for anybody to edit those works. A 11688 public wiki that anybody can edit is an example of such a server. 11689 A "Massive Multiauthor Collaboration" (or "MMC") contained in the 11690 site means any set of copyrightable works thus published on the MMC 11691 site. 11692 11693 "CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0 11694 license published by Creative Commons Corporation, a not-for-profit 11695 corporation with a principal place of business in San Francisco, 11696 California, as well as future copyleft versions of that license 11697 published by that same organization. 11698 11699 "Incorporate" means to publish or republish a Document, in whole or 11700 in part, as part of another Document. 11701 11702 An MMC is "eligible for relicensing" if it is licensed under this 11703 License, and if all works that were first published under this 11704 License somewhere other than this MMC, and subsequently 11705 incorporated in whole or in part into the MMC, (1) had no cover 11706 texts or invariant sections, and (2) were thus incorporated prior 11707 to November 1, 2008. 11708 11709 The operator of an MMC Site may republish an MMC contained in the 11710 site under CC-BY-SA on the same site at any time before August 1, 11711 2009, provided the MMC is eligible for relicensing. 11712 11713 11714ADDENDUM: How to use this License for your documents 11715==================================================== 11716 11717To use this License in a document you have written, include a copy of 11718the License in the document and put the following copyright and license 11719notices just after the title page: 11720 11721 Copyright (C) YEAR YOUR NAME. 11722 Permission is granted to copy, distribute and/or modify this document 11723 under the terms of the GNU Free Documentation License, Version 1.3 11724 or any later version published by the Free Software Foundation; 11725 with no Invariant Sections, no Front-Cover Texts, and no Back-Cover 11726 Texts. A copy of the license is included in the section entitled ``GNU 11727 Free Documentation License''. 11728 11729 If you have Invariant Sections, Front-Cover Texts and Back-Cover 11730Texts, replace the "with...Texts." line with this: 11731 11732 with the Invariant Sections being LIST THEIR TITLES, with 11733 the Front-Cover Texts being LIST, and with the Back-Cover Texts 11734 being LIST. 11735 11736 If you have Invariant Sections without Cover Texts, or some other 11737combination of the three, merge those two alternatives to suit the 11738situation. 11739 11740 If your document contains nontrivial examples of program code, we 11741recommend releasing these examples in parallel under your choice of 11742free software license, such as the GNU General Public License, to 11743permit their use in free software. 11744 11745 11746File: bfd.info, Node: BFD Index, Prev: GNU Free Documentation License, Up: Top 11747 11748BFD Index 11749********* 11750 11751[index] 11752* Menu: 11753 11754* _bfd_final_link_relocate: Relocating the section contents. 11755 (line 22) 11756* _bfd_generic_link_add_archive_symbols: Adding symbols from an archive. 11757 (line 15) 11758* _bfd_generic_link_add_one_symbol: Adding symbols from an object file. 11759 (line 19) 11760* _bfd_generic_link_check_relocs: Writing the symbol table. 11761 (line 114) 11762* _bfd_generic_make_empty_symbol: symbol handling functions. 11763 (line 92) 11764* _bfd_link_add_symbols in target vector: Adding Symbols to the Hash Table. 11765 (line 6) 11766* _bfd_link_final_link in target vector: Performing the Final Link. 11767 (line 6) 11768* _bfd_link_hash_table_create in target vector: Creating a Linker Hash Table. 11769 (line 6) 11770* _bfd_relocate_contents: Relocating the section contents. 11771 (line 22) 11772* aout_SIZE_machine_type: aout. (line 147) 11773* aout_SIZE_mkobject: aout. (line 139) 11774* aout_SIZE_new_section_hook: aout. (line 177) 11775* aout_SIZE_set_arch_mach: aout. (line 164) 11776* aout_SIZE_some_aout_object_p: aout. (line 125) 11777* aout_SIZE_swap_exec_header_in: aout. (line 101) 11778* aout_SIZE_swap_exec_header_out: aout. (line 113) 11779* arelent_chain: typedef arelent. (line 336) 11780* BFD: Overview. (line 6) 11781* BFD canonical format: Canonical format. (line 11) 11782* bfd_alloc: Opening and Closing. 11783 (line 239) 11784* bfd_alloc2: Opening and Closing. 11785 (line 248) 11786* bfd_alt_mach_code: Miscellaneous. (line 307) 11787* bfd_arch_bits_per_address: Architectures. (line 627) 11788* bfd_arch_bits_per_byte: Architectures. (line 619) 11789* bfd_arch_default_fill: Architectures. (line 708) 11790* bfd_arch_get_compatible: Architectures. (line 562) 11791* bfd_arch_list: Architectures. (line 553) 11792* bfd_arch_mach_octets_per_byte: Architectures. (line 696) 11793* BFD_ARELOC_BFIN_ADD: howto manager. (line 1206) 11794* BFD_ARELOC_BFIN_ADDR: howto manager. (line 1257) 11795* BFD_ARELOC_BFIN_AND: howto manager. (line 1227) 11796* BFD_ARELOC_BFIN_COMP: howto manager. (line 1248) 11797* BFD_ARELOC_BFIN_CONST: howto manager. (line 1203) 11798* BFD_ARELOC_BFIN_DIV: howto manager. (line 1215) 11799* BFD_ARELOC_BFIN_HWPAGE: howto manager. (line 1254) 11800* BFD_ARELOC_BFIN_LAND: howto manager. (line 1236) 11801* BFD_ARELOC_BFIN_LEN: howto manager. (line 1242) 11802* BFD_ARELOC_BFIN_LOR: howto manager. (line 1239) 11803* BFD_ARELOC_BFIN_LSHIFT: howto manager. (line 1221) 11804* BFD_ARELOC_BFIN_MOD: howto manager. (line 1218) 11805* BFD_ARELOC_BFIN_MULT: howto manager. (line 1212) 11806* BFD_ARELOC_BFIN_NEG: howto manager. (line 1245) 11807* BFD_ARELOC_BFIN_OR: howto manager. (line 1230) 11808* BFD_ARELOC_BFIN_PAGE: howto manager. (line 1251) 11809* BFD_ARELOC_BFIN_PUSH: howto manager. (line 1200) 11810* BFD_ARELOC_BFIN_RSHIFT: howto manager. (line 1224) 11811* BFD_ARELOC_BFIN_SUB: howto manager. (line 1209) 11812* BFD_ARELOC_BFIN_XOR: howto manager. (line 1233) 11813* bfd_cache_close: File Caching. (line 26) 11814* bfd_cache_close_all: File Caching. (line 39) 11815* bfd_cache_init: File Caching. (line 18) 11816* bfd_calc_gnu_debuglink_crc32: Opening and Closing. 11817 (line 275) 11818* bfd_canonicalize_reloc: Miscellaneous. (line 19) 11819* bfd_canonicalize_symtab: symbol handling functions. 11820 (line 50) 11821* bfd_check_compression_header: Miscellaneous. (line 379) 11822* bfd_check_format: Formats. (line 21) 11823* bfd_check_format_matches: Formats. (line 52) 11824* bfd_check_overflow: typedef arelent. (line 348) 11825* bfd_close: Opening and Closing. 11826 (line 161) 11827* bfd_close_all_done: Opening and Closing. 11828 (line 179) 11829* bfd_coff_backend_data: coff. (line 308) 11830* bfd_convert_section_contents: Miscellaneous. (line 415) 11831* bfd_convert_section_size: Miscellaneous. (line 405) 11832* bfd_copy_private_bfd_data: Miscellaneous. (line 160) 11833* bfd_copy_private_header_data: Miscellaneous. (line 142) 11834* bfd_copy_private_section_data: section prototypes. (line 288) 11835* bfd_copy_private_symbol_data: symbol handling functions. 11836 (line 140) 11837* bfd_core_file_failing_command: Core Files. (line 12) 11838* bfd_core_file_failing_signal: Core Files. (line 21) 11839* bfd_core_file_pid: Core Files. (line 30) 11840* bfd_create: Opening and Closing. 11841 (line 198) 11842* bfd_create_gnu_debuglink_section: Opening and Closing. 11843 (line 387) 11844* bfd_decode_symclass: symbol handling functions. 11845 (line 111) 11846* bfd_default_arch_struct: Architectures. (line 574) 11847* bfd_default_compatible: Architectures. (line 636) 11848* bfd_default_reloc_type_lookup: howto manager. (line 3749) 11849* bfd_default_scan: Architectures. (line 645) 11850* bfd_default_set_arch_mach: Architectures. (line 592) 11851* bfd_demangle: Miscellaneous. (line 358) 11852* bfd_emul_get_commonpagesize: Miscellaneous. (line 338) 11853* bfd_emul_get_maxpagesize: Miscellaneous. (line 318) 11854* bfd_emul_set_commonpagesize: Miscellaneous. (line 349) 11855* bfd_emul_set_maxpagesize: Miscellaneous. (line 329) 11856* bfd_errmsg: Error reporting. (line 67) 11857* bfd_fdopenr: Opening and Closing. 11858 (line 57) 11859* bfd_fill_in_gnu_debuglink_section: Opening and Closing. 11860 (line 401) 11861* bfd_find_target: bfd_target. (line 475) 11862* bfd_find_version_for_sym: Writing the symbol table. 11863 (line 81) 11864* bfd_flavour_name: bfd_target. (line 539) 11865* bfd_follow_gnu_debugaltlink: Opening and Closing. 11866 (line 367) 11867* bfd_follow_gnu_debuglink: Opening and Closing. 11868 (line 346) 11869* bfd_fopen: Opening and Closing. 11870 (line 12) 11871* bfd_format_string: Formats. (line 79) 11872* bfd_generic_define_common_symbol: Writing the symbol table. 11873 (line 68) 11874* bfd_generic_discard_group: section prototypes. (line 314) 11875* bfd_generic_gc_sections: howto manager. (line 3780) 11876* bfd_generic_get_relocated_section_contents: howto manager. (line 3810) 11877* bfd_generic_is_group_section: section prototypes. (line 306) 11878* bfd_generic_lookup_section_flags: howto manager. (line 3790) 11879* bfd_generic_merge_sections: howto manager. (line 3800) 11880* bfd_generic_relax_section: howto manager. (line 3767) 11881* bfd_get_alt_debug_link_info: Opening and Closing. 11882 (line 300) 11883* bfd_get_arch: Architectures. (line 603) 11884* bfd_get_arch_info: Architectures. (line 655) 11885* bfd_get_arch_size: Miscellaneous. (line 63) 11886* bfd_get_assert_handler: Error reporting. (line 150) 11887* bfd_get_compression_header_size: Miscellaneous. (line 394) 11888* bfd_get_debug_link_info: Opening and Closing. 11889 (line 289) 11890* bfd_get_error: Error reporting. (line 48) 11891* bfd_get_error_handler: Error reporting. (line 118) 11892* bfd_get_gp_size: Miscellaneous. (line 106) 11893* bfd_get_linker_section: section prototypes. (line 38) 11894* bfd_get_mach: Architectures. (line 611) 11895* bfd_get_mtime: Miscellaneous. (line 468) 11896* bfd_get_next_mapent: Archives. (line 58) 11897* bfd_get_next_section_by_name: section prototypes. (line 26) 11898* bfd_get_next_section_id: section prototypes. (line 156) 11899* bfd_get_reloc_code_name: howto manager. (line 3758) 11900* bfd_get_reloc_size: typedef arelent. (line 327) 11901* bfd_get_reloc_upper_bound: Miscellaneous. (line 9) 11902* bfd_get_section_by_name: section prototypes. (line 17) 11903* bfd_get_section_by_name_if: section prototypes. (line 47) 11904* bfd_get_section_contents: section prototypes. (line 261) 11905* bfd_get_sign_extend_vma: Miscellaneous. (line 78) 11906* bfd_get_size <1>: Internal. (line 25) 11907* bfd_get_size: Miscellaneous. (line 477) 11908* bfd_get_symtab_upper_bound: symbol handling functions. 11909 (line 6) 11910* bfd_get_target_info: bfd_target. (line 491) 11911* bfd_get_unique_section_name: section prototypes. (line 66) 11912* bfd_h_put_size: Internal. (line 97) 11913* bfd_hash_allocate: Creating and Freeing a Hash Table. 11914 (line 17) 11915* bfd_hash_lookup: Looking Up or Entering a String. 11916 (line 6) 11917* bfd_hash_newfunc: Creating and Freeing a Hash Table. 11918 (line 12) 11919* bfd_hash_set_default_size: Creating and Freeing a Hash Table. 11920 (line 25) 11921* bfd_hash_table_free: Creating and Freeing a Hash Table. 11922 (line 21) 11923* bfd_hash_table_init: Creating and Freeing a Hash Table. 11924 (line 6) 11925* bfd_hash_table_init_n: Creating and Freeing a Hash Table. 11926 (line 6) 11927* bfd_hash_traverse: Traversing a Hash Table. 11928 (line 6) 11929* bfd_hide_sym_by_version: Writing the symbol table. 11930 (line 93) 11931* bfd_init: Initialization. (line 11) 11932* bfd_install_relocation: typedef arelent. (line 389) 11933* bfd_is_local_label: symbol handling functions. 11934 (line 17) 11935* bfd_is_local_label_name: symbol handling functions. 11936 (line 26) 11937* bfd_is_target_special_symbol: symbol handling functions. 11938 (line 38) 11939* bfd_is_undefined_symclass: symbol handling functions. 11940 (line 120) 11941* bfd_link_check_relocs: Writing the symbol table. 11942 (line 103) 11943* bfd_link_split_section: Writing the symbol table. 11944 (line 44) 11945* bfd_log2: Internal. (line 164) 11946* bfd_lookup_arch: Architectures. (line 663) 11947* bfd_make_debug_symbol: symbol handling functions. 11948 (line 102) 11949* bfd_make_empty_symbol: symbol handling functions. 11950 (line 78) 11951* bfd_make_readable: Opening and Closing. 11952 (line 225) 11953* bfd_make_section: section prototypes. (line 145) 11954* bfd_make_section_anyway: section prototypes. (line 116) 11955* bfd_make_section_anyway_with_flags: section prototypes. (line 98) 11956* bfd_make_section_old_way: section prototypes. (line 78) 11957* bfd_make_section_with_flags: section prototypes. (line 132) 11958* bfd_make_writable: Opening and Closing. 11959 (line 211) 11960* bfd_malloc_and_get_section: section prototypes. (line 278) 11961* bfd_map_over_sections: section prototypes. (line 188) 11962* bfd_merge_private_bfd_data: Miscellaneous. (line 176) 11963* bfd_mmap: Miscellaneous. (line 506) 11964* bfd_octets_per_byte: Architectures. (line 686) 11965* bfd_open_file: File Caching. (line 52) 11966* bfd_openr: Opening and Closing. 11967 (line 38) 11968* bfd_openr_iovec: Opening and Closing. 11969 (line 95) 11970* bfd_openr_next_archived_file: Archives. (line 84) 11971* bfd_openstreamr: Opening and Closing. 11972 (line 83) 11973* bfd_openw: Opening and Closing. 11974 (line 146) 11975* bfd_perform_relocation: typedef arelent. (line 364) 11976* bfd_perror: Error reporting. (line 76) 11977* bfd_print_symbol_vandf: symbol handling functions. 11978 (line 70) 11979* bfd_printable_arch_mach: Architectures. (line 674) 11980* bfd_printable_name: Architectures. (line 534) 11981* bfd_put_size: Internal. (line 22) 11982* BFD_RELOC_12_PCREL: howto manager. (line 39) 11983* BFD_RELOC_14: howto manager. (line 31) 11984* BFD_RELOC_16: howto manager. (line 30) 11985* BFD_RELOC_16_BASEREL: howto manager. (line 99) 11986* BFD_RELOC_16_GOT_PCREL: howto manager. (line 52) 11987* BFD_RELOC_16_GOTOFF: howto manager. (line 55) 11988* BFD_RELOC_16_PCREL: howto manager. (line 38) 11989* BFD_RELOC_16_PCREL_S2: howto manager. (line 111) 11990* BFD_RELOC_16_PLT_PCREL: howto manager. (line 63) 11991* BFD_RELOC_16_PLTOFF: howto manager. (line 67) 11992* BFD_RELOC_16C_ABS20: howto manager. (line 2545) 11993* BFD_RELOC_16C_ABS20_C: howto manager. (line 2546) 11994* BFD_RELOC_16C_ABS24: howto manager. (line 2547) 11995* BFD_RELOC_16C_ABS24_C: howto manager. (line 2548) 11996* BFD_RELOC_16C_DISP04: howto manager. (line 2525) 11997* BFD_RELOC_16C_DISP04_C: howto manager. (line 2526) 11998* BFD_RELOC_16C_DISP08: howto manager. (line 2527) 11999* BFD_RELOC_16C_DISP08_C: howto manager. (line 2528) 12000* BFD_RELOC_16C_DISP16: howto manager. (line 2529) 12001* BFD_RELOC_16C_DISP16_C: howto manager. (line 2530) 12002* BFD_RELOC_16C_DISP24: howto manager. (line 2531) 12003* BFD_RELOC_16C_DISP24_C: howto manager. (line 2532) 12004* BFD_RELOC_16C_DISP24a: howto manager. (line 2533) 12005* BFD_RELOC_16C_DISP24a_C: howto manager. (line 2534) 12006* BFD_RELOC_16C_IMM04: howto manager. (line 2549) 12007* BFD_RELOC_16C_IMM04_C: howto manager. (line 2550) 12008* BFD_RELOC_16C_IMM16: howto manager. (line 2551) 12009* BFD_RELOC_16C_IMM16_C: howto manager. (line 2552) 12010* BFD_RELOC_16C_IMM20: howto manager. (line 2553) 12011* BFD_RELOC_16C_IMM20_C: howto manager. (line 2554) 12012* BFD_RELOC_16C_IMM24: howto manager. (line 2555) 12013* BFD_RELOC_16C_IMM24_C: howto manager. (line 2556) 12014* BFD_RELOC_16C_IMM32: howto manager. (line 2557) 12015* BFD_RELOC_16C_IMM32_C: howto manager. (line 2558) 12016* BFD_RELOC_16C_NUM08: howto manager. (line 2519) 12017* BFD_RELOC_16C_NUM08_C: howto manager. (line 2520) 12018* BFD_RELOC_16C_NUM16: howto manager. (line 2521) 12019* BFD_RELOC_16C_NUM16_C: howto manager. (line 2522) 12020* BFD_RELOC_16C_NUM32: howto manager. (line 2523) 12021* BFD_RELOC_16C_NUM32_C: howto manager. (line 2524) 12022* BFD_RELOC_16C_REG04: howto manager. (line 2535) 12023* BFD_RELOC_16C_REG04_C: howto manager. (line 2536) 12024* BFD_RELOC_16C_REG04a: howto manager. (line 2537) 12025* BFD_RELOC_16C_REG04a_C: howto manager. (line 2538) 12026* BFD_RELOC_16C_REG14: howto manager. (line 2539) 12027* BFD_RELOC_16C_REG14_C: howto manager. (line 2540) 12028* BFD_RELOC_16C_REG16: howto manager. (line 2541) 12029* BFD_RELOC_16C_REG16_C: howto manager. (line 2542) 12030* BFD_RELOC_16C_REG20: howto manager. (line 2543) 12031* BFD_RELOC_16C_REG20_C: howto manager. (line 2544) 12032* BFD_RELOC_23_PCREL_S2: howto manager. (line 112) 12033* BFD_RELOC_24: howto manager. (line 29) 12034* BFD_RELOC_24_PCREL: howto manager. (line 37) 12035* BFD_RELOC_24_PLT_PCREL: howto manager. (line 62) 12036* BFD_RELOC_26: howto manager. (line 28) 12037* BFD_RELOC_32: howto manager. (line 27) 12038* BFD_RELOC_32_BASEREL: howto manager. (line 98) 12039* BFD_RELOC_32_GOT_PCREL: howto manager. (line 51) 12040* BFD_RELOC_32_GOTOFF: howto manager. (line 54) 12041* BFD_RELOC_32_PCREL: howto manager. (line 36) 12042* BFD_RELOC_32_PCREL_S2: howto manager. (line 110) 12043* BFD_RELOC_32_PLT_PCREL: howto manager. (line 61) 12044* BFD_RELOC_32_PLTOFF: howto manager. (line 66) 12045* BFD_RELOC_32_SECREL: howto manager. (line 48) 12046* BFD_RELOC_386_COPY: howto manager. (line 592) 12047* BFD_RELOC_386_GLOB_DAT: howto manager. (line 593) 12048* BFD_RELOC_386_GOT32: howto manager. (line 590) 12049* BFD_RELOC_386_GOT32X: howto manager. (line 614) 12050* BFD_RELOC_386_GOTOFF: howto manager. (line 596) 12051* BFD_RELOC_386_GOTPC: howto manager. (line 597) 12052* BFD_RELOC_386_IRELATIVE: howto manager. (line 613) 12053* BFD_RELOC_386_JUMP_SLOT: howto manager. (line 594) 12054* BFD_RELOC_386_PLT32: howto manager. (line 591) 12055* BFD_RELOC_386_RELATIVE: howto manager. (line 595) 12056* BFD_RELOC_386_TLS_DESC: howto manager. (line 612) 12057* BFD_RELOC_386_TLS_DESC_CALL: howto manager. (line 611) 12058* BFD_RELOC_386_TLS_DTPMOD32: howto manager. (line 607) 12059* BFD_RELOC_386_TLS_DTPOFF32: howto manager. (line 608) 12060* BFD_RELOC_386_TLS_GD: howto manager. (line 602) 12061* BFD_RELOC_386_TLS_GOTDESC: howto manager. (line 610) 12062* BFD_RELOC_386_TLS_GOTIE: howto manager. (line 600) 12063* BFD_RELOC_386_TLS_IE: howto manager. (line 599) 12064* BFD_RELOC_386_TLS_IE_32: howto manager. (line 605) 12065* BFD_RELOC_386_TLS_LDM: howto manager. (line 603) 12066* BFD_RELOC_386_TLS_LDO_32: howto manager. (line 604) 12067* BFD_RELOC_386_TLS_LE: howto manager. (line 601) 12068* BFD_RELOC_386_TLS_LE_32: howto manager. (line 606) 12069* BFD_RELOC_386_TLS_TPOFF: howto manager. (line 598) 12070* BFD_RELOC_386_TLS_TPOFF32: howto manager. (line 609) 12071* BFD_RELOC_390_12: howto manager. (line 2128) 12072* BFD_RELOC_390_20: howto manager. (line 2240) 12073* BFD_RELOC_390_COPY: howto manager. (line 2137) 12074* BFD_RELOC_390_GLOB_DAT: howto manager. (line 2140) 12075* BFD_RELOC_390_GOT12: howto manager. (line 2131) 12076* BFD_RELOC_390_GOT16: howto manager. (line 2152) 12077* BFD_RELOC_390_GOT20: howto manager. (line 2241) 12078* BFD_RELOC_390_GOT64: howto manager. (line 2182) 12079* BFD_RELOC_390_GOTENT: howto manager. (line 2188) 12080* BFD_RELOC_390_GOTOFF64: howto manager. (line 2191) 12081* BFD_RELOC_390_GOTPC: howto manager. (line 2149) 12082* BFD_RELOC_390_GOTPCDBL: howto manager. (line 2179) 12083* BFD_RELOC_390_GOTPLT12: howto manager. (line 2194) 12084* BFD_RELOC_390_GOTPLT16: howto manager. (line 2197) 12085* BFD_RELOC_390_GOTPLT20: howto manager. (line 2242) 12086* BFD_RELOC_390_GOTPLT32: howto manager. (line 2200) 12087* BFD_RELOC_390_GOTPLT64: howto manager. (line 2203) 12088* BFD_RELOC_390_GOTPLTENT: howto manager. (line 2206) 12089* BFD_RELOC_390_IRELATIVE: howto manager. (line 2246) 12090* BFD_RELOC_390_JMP_SLOT: howto manager. (line 2143) 12091* BFD_RELOC_390_PC12DBL: howto manager. (line 2155) 12092* BFD_RELOC_390_PC16DBL: howto manager. (line 2161) 12093* BFD_RELOC_390_PC24DBL: howto manager. (line 2167) 12094* BFD_RELOC_390_PC32DBL: howto manager. (line 2173) 12095* BFD_RELOC_390_PLT12DBL: howto manager. (line 2158) 12096* BFD_RELOC_390_PLT16DBL: howto manager. (line 2164) 12097* BFD_RELOC_390_PLT24DBL: howto manager. (line 2170) 12098* BFD_RELOC_390_PLT32: howto manager. (line 2134) 12099* BFD_RELOC_390_PLT32DBL: howto manager. (line 2176) 12100* BFD_RELOC_390_PLT64: howto manager. (line 2185) 12101* BFD_RELOC_390_PLTOFF16: howto manager. (line 2209) 12102* BFD_RELOC_390_PLTOFF32: howto manager. (line 2212) 12103* BFD_RELOC_390_PLTOFF64: howto manager. (line 2215) 12104* BFD_RELOC_390_RELATIVE: howto manager. (line 2146) 12105* BFD_RELOC_390_TLS_DTPMOD: howto manager. (line 2235) 12106* BFD_RELOC_390_TLS_DTPOFF: howto manager. (line 2236) 12107* BFD_RELOC_390_TLS_GD32: howto manager. (line 2221) 12108* BFD_RELOC_390_TLS_GD64: howto manager. (line 2222) 12109* BFD_RELOC_390_TLS_GDCALL: howto manager. (line 2219) 12110* BFD_RELOC_390_TLS_GOTIE12: howto manager. (line 2223) 12111* BFD_RELOC_390_TLS_GOTIE20: howto manager. (line 2243) 12112* BFD_RELOC_390_TLS_GOTIE32: howto manager. (line 2224) 12113* BFD_RELOC_390_TLS_GOTIE64: howto manager. (line 2225) 12114* BFD_RELOC_390_TLS_IE32: howto manager. (line 2228) 12115* BFD_RELOC_390_TLS_IE64: howto manager. (line 2229) 12116* BFD_RELOC_390_TLS_IEENT: howto manager. (line 2230) 12117* BFD_RELOC_390_TLS_LDCALL: howto manager. (line 2220) 12118* BFD_RELOC_390_TLS_LDM32: howto manager. (line 2226) 12119* BFD_RELOC_390_TLS_LDM64: howto manager. (line 2227) 12120* BFD_RELOC_390_TLS_LDO32: howto manager. (line 2233) 12121* BFD_RELOC_390_TLS_LDO64: howto manager. (line 2234) 12122* BFD_RELOC_390_TLS_LE32: howto manager. (line 2231) 12123* BFD_RELOC_390_TLS_LE64: howto manager. (line 2232) 12124* BFD_RELOC_390_TLS_LOAD: howto manager. (line 2218) 12125* BFD_RELOC_390_TLS_TPOFF: howto manager. (line 2237) 12126* BFD_RELOC_64: howto manager. (line 26) 12127* BFD_RELOC_64_PCREL: howto manager. (line 35) 12128* BFD_RELOC_64_PLT_PCREL: howto manager. (line 60) 12129* BFD_RELOC_64_PLTOFF: howto manager. (line 65) 12130* BFD_RELOC_68K_GLOB_DAT: howto manager. (line 78) 12131* BFD_RELOC_68K_JMP_SLOT: howto manager. (line 79) 12132* BFD_RELOC_68K_RELATIVE: howto manager. (line 80) 12133* BFD_RELOC_68K_TLS_GD16: howto manager. (line 82) 12134* BFD_RELOC_68K_TLS_GD32: howto manager. (line 81) 12135* BFD_RELOC_68K_TLS_GD8: howto manager. (line 83) 12136* BFD_RELOC_68K_TLS_IE16: howto manager. (line 91) 12137* BFD_RELOC_68K_TLS_IE32: howto manager. (line 90) 12138* BFD_RELOC_68K_TLS_IE8: howto manager. (line 92) 12139* BFD_RELOC_68K_TLS_LDM16: howto manager. (line 85) 12140* BFD_RELOC_68K_TLS_LDM32: howto manager. (line 84) 12141* BFD_RELOC_68K_TLS_LDM8: howto manager. (line 86) 12142* BFD_RELOC_68K_TLS_LDO16: howto manager. (line 88) 12143* BFD_RELOC_68K_TLS_LDO32: howto manager. (line 87) 12144* BFD_RELOC_68K_TLS_LDO8: howto manager. (line 89) 12145* BFD_RELOC_68K_TLS_LE16: howto manager. (line 94) 12146* BFD_RELOC_68K_TLS_LE32: howto manager. (line 93) 12147* BFD_RELOC_68K_TLS_LE8: howto manager. (line 95) 12148* BFD_RELOC_8: howto manager. (line 32) 12149* BFD_RELOC_860_COPY: howto manager. (line 2673) 12150* BFD_RELOC_860_GLOB_DAT: howto manager. (line 2674) 12151* BFD_RELOC_860_HAGOT: howto manager. (line 2699) 12152* BFD_RELOC_860_HAGOTOFF: howto manager. (line 2700) 12153* BFD_RELOC_860_HAPC: howto manager. (line 2701) 12154* BFD_RELOC_860_HIGH: howto manager. (line 2702) 12155* BFD_RELOC_860_HIGHADJ: howto manager. (line 2698) 12156* BFD_RELOC_860_HIGOT: howto manager. (line 2703) 12157* BFD_RELOC_860_HIGOTOFF: howto manager. (line 2704) 12158* BFD_RELOC_860_JUMP_SLOT: howto manager. (line 2675) 12159* BFD_RELOC_860_LOGOT0: howto manager. (line 2687) 12160* BFD_RELOC_860_LOGOT1: howto manager. (line 2689) 12161* BFD_RELOC_860_LOGOTOFF0: howto manager. (line 2691) 12162* BFD_RELOC_860_LOGOTOFF1: howto manager. (line 2693) 12163* BFD_RELOC_860_LOGOTOFF2: howto manager. (line 2695) 12164* BFD_RELOC_860_LOGOTOFF3: howto manager. (line 2696) 12165* BFD_RELOC_860_LOPC: howto manager. (line 2697) 12166* BFD_RELOC_860_LOW0: howto manager. (line 2680) 12167* BFD_RELOC_860_LOW1: howto manager. (line 2682) 12168* BFD_RELOC_860_LOW2: howto manager. (line 2684) 12169* BFD_RELOC_860_LOW3: howto manager. (line 2686) 12170* BFD_RELOC_860_PC16: howto manager. (line 2679) 12171* BFD_RELOC_860_PC26: howto manager. (line 2677) 12172* BFD_RELOC_860_PLT26: howto manager. (line 2678) 12173* BFD_RELOC_860_RELATIVE: howto manager. (line 2676) 12174* BFD_RELOC_860_SPGOT0: howto manager. (line 2688) 12175* BFD_RELOC_860_SPGOT1: howto manager. (line 2690) 12176* BFD_RELOC_860_SPGOTOFF0: howto manager. (line 2692) 12177* BFD_RELOC_860_SPGOTOFF1: howto manager. (line 2694) 12178* BFD_RELOC_860_SPLIT0: howto manager. (line 2681) 12179* BFD_RELOC_860_SPLIT1: howto manager. (line 2683) 12180* BFD_RELOC_860_SPLIT2: howto manager. (line 2685) 12181* BFD_RELOC_8_BASEREL: howto manager. (line 103) 12182* BFD_RELOC_8_FFnn: howto manager. (line 107) 12183* BFD_RELOC_8_GOT_PCREL: howto manager. (line 53) 12184* BFD_RELOC_8_GOTOFF: howto manager. (line 59) 12185* BFD_RELOC_8_PCREL: howto manager. (line 40) 12186* BFD_RELOC_8_PLT_PCREL: howto manager. (line 64) 12187* BFD_RELOC_8_PLTOFF: howto manager. (line 71) 12188* BFD_RELOC_AARCH64_16: howto manager. (line 3119) 12189* BFD_RELOC_AARCH64_16_PCREL: howto manager. (line 3126) 12190* BFD_RELOC_AARCH64_32: howto manager. (line 3118) 12191* BFD_RELOC_AARCH64_32_PCREL: howto manager. (line 3125) 12192* BFD_RELOC_AARCH64_64: howto manager. (line 3117) 12193* BFD_RELOC_AARCH64_64_PCREL: howto manager. (line 3124) 12194* BFD_RELOC_AARCH64_ADD_LO12: howto manager. (line 3191) 12195* BFD_RELOC_AARCH64_ADR_GOT_PAGE: howto manager. (line 3248) 12196* BFD_RELOC_AARCH64_ADR_HI21_NC_PCREL: howto manager. (line 3186) 12197* BFD_RELOC_AARCH64_ADR_HI21_PCREL: howto manager. (line 3182) 12198* BFD_RELOC_AARCH64_ADR_LO21_PCREL: howto manager. (line 3178) 12199* BFD_RELOC_AARCH64_BRANCH19: howto manager. (line 3206) 12200* BFD_RELOC_AARCH64_CALL26: howto manager. (line 3216) 12201* BFD_RELOC_AARCH64_COPY: howto manager. (line 3448) 12202* BFD_RELOC_AARCH64_GAS_INTERNAL_FIXUP: howto manager. (line 3482) 12203* BFD_RELOC_AARCH64_GLOB_DAT: howto manager. (line 3451) 12204* BFD_RELOC_AARCH64_GOT_LD_PREL19: howto manager. (line 3241) 12205* BFD_RELOC_AARCH64_IRELATIVE: howto manager. (line 3472) 12206* BFD_RELOC_AARCH64_JUMP26: howto manager. (line 3211) 12207* BFD_RELOC_AARCH64_JUMP_SLOT: howto manager. (line 3454) 12208* BFD_RELOC_AARCH64_LD32_GOT_LO12_NC: howto manager. (line 3258) 12209* BFD_RELOC_AARCH64_LD32_GOTPAGE_LO14: howto manager. (line 3275) 12210* BFD_RELOC_AARCH64_LD64_GOT_LO12_NC: howto manager. (line 3253) 12211* BFD_RELOC_AARCH64_LD64_GOTOFF_LO15: howto manager. (line 3271) 12212* BFD_RELOC_AARCH64_LD64_GOTPAGE_LO15: howto manager. (line 3279) 12213* BFD_RELOC_AARCH64_LD_GOT_LO12_NC: howto manager. (line 3500) 12214* BFD_RELOC_AARCH64_LD_LO19_PCREL: howto manager. (line 3173) 12215* BFD_RELOC_AARCH64_LDST128_LO12: howto manager. (line 3236) 12216* BFD_RELOC_AARCH64_LDST16_LO12: howto manager. (line 3221) 12217* BFD_RELOC_AARCH64_LDST32_LO12: howto manager. (line 3226) 12218* BFD_RELOC_AARCH64_LDST64_LO12: howto manager. (line 3231) 12219* BFD_RELOC_AARCH64_LDST8_LO12: howto manager. (line 3196) 12220* BFD_RELOC_AARCH64_LDST_LO12: howto manager. (line 3486) 12221* BFD_RELOC_AARCH64_MOVW_G0: howto manager. (line 3130) 12222* BFD_RELOC_AARCH64_MOVW_G0_NC: howto manager. (line 3134) 12223* BFD_RELOC_AARCH64_MOVW_G0_S: howto manager. (line 3158) 12224* BFD_RELOC_AARCH64_MOVW_G1: howto manager. (line 3138) 12225* BFD_RELOC_AARCH64_MOVW_G1_NC: howto manager. (line 3142) 12226* BFD_RELOC_AARCH64_MOVW_G1_S: howto manager. (line 3163) 12227* BFD_RELOC_AARCH64_MOVW_G2: howto manager. (line 3146) 12228* BFD_RELOC_AARCH64_MOVW_G2_NC: howto manager. (line 3150) 12229* BFD_RELOC_AARCH64_MOVW_G2_S: howto manager. (line 3168) 12230* BFD_RELOC_AARCH64_MOVW_G3: howto manager. (line 3154) 12231* BFD_RELOC_AARCH64_MOVW_GOTOFF_G0_NC: howto manager. (line 3263) 12232* BFD_RELOC_AARCH64_MOVW_GOTOFF_G1: howto manager. (line 3267) 12233* BFD_RELOC_AARCH64_NONE: howto manager. (line 3114) 12234* BFD_RELOC_AARCH64_NULL: howto manager. (line 3111) 12235* BFD_RELOC_AARCH64_RELATIVE: howto manager. (line 3457) 12236* BFD_RELOC_AARCH64_RELOC_END: howto manager. (line 3475) 12237* BFD_RELOC_AARCH64_RELOC_START: howto manager. (line 3105) 12238* BFD_RELOC_AARCH64_TLS_DTPMOD: howto manager. (line 3460) 12239* BFD_RELOC_AARCH64_TLS_DTPREL: howto manager. (line 3463) 12240* BFD_RELOC_AARCH64_TLS_TPREL: howto manager. (line 3466) 12241* BFD_RELOC_AARCH64_TLSDESC: howto manager. (line 3469) 12242* BFD_RELOC_AARCH64_TLSDESC_ADD: howto manager. (line 3442) 12243* BFD_RELOC_AARCH64_TLSDESC_ADD_LO12_NC: howto manager. (line 3430) 12244* BFD_RELOC_AARCH64_TLSDESC_ADR_PAGE21: howto manager. (line 3421) 12245* BFD_RELOC_AARCH64_TLSDESC_ADR_PREL21: howto manager. (line 3418) 12246* BFD_RELOC_AARCH64_TLSDESC_CALL: howto manager. (line 3445) 12247* BFD_RELOC_AARCH64_TLSDESC_LD32_LO12_NC: howto manager. (line 3427) 12248* BFD_RELOC_AARCH64_TLSDESC_LD64_LO12_NC: howto manager. (line 3424) 12249* BFD_RELOC_AARCH64_TLSDESC_LD_LO12_NC: howto manager. (line 3508) 12250* BFD_RELOC_AARCH64_TLSDESC_LD_PREL19: howto manager. (line 3415) 12251* BFD_RELOC_AARCH64_TLSDESC_LDR: howto manager. (line 3439) 12252* BFD_RELOC_AARCH64_TLSDESC_OFF_G0_NC: howto manager. (line 3436) 12253* BFD_RELOC_AARCH64_TLSDESC_OFF_G1: howto manager. (line 3433) 12254* BFD_RELOC_AARCH64_TLSGD_ADD_LO12_NC: howto manager. (line 3292) 12255* BFD_RELOC_AARCH64_TLSGD_ADR_PAGE21: howto manager. (line 3283) 12256* BFD_RELOC_AARCH64_TLSGD_ADR_PREL21: howto manager. (line 3289) 12257* BFD_RELOC_AARCH64_TLSGD_MOVW_G0_NC: howto manager. (line 3297) 12258* BFD_RELOC_AARCH64_TLSGD_MOVW_G1: howto manager. (line 3300) 12259* BFD_RELOC_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21: howto manager. 12260 (line 3303) 12261* BFD_RELOC_AARCH64_TLSIE_LD32_GOTTPREL_LO12_NC: howto manager. 12262 (line 3309) 12263* BFD_RELOC_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC: howto manager. 12264 (line 3306) 12265* BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_LO12_NC: howto manager. 12266 (line 3504) 12267* BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_PREL19: howto manager. (line 3312) 12268* BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC: howto manager. 12269 (line 3315) 12270* BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G1: howto manager. (line 3318) 12271* BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_HI12: howto manager. (line 3321) 12272* BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12: howto manager. (line 3324) 12273* BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12_NC: howto manager. (line 3327) 12274* BFD_RELOC_AARCH64_TLSLD_ADD_LO12_NC: howto manager. (line 3331) 12275* BFD_RELOC_AARCH64_TLSLD_ADR_PAGE21: howto manager. (line 3336) 12276* BFD_RELOC_AARCH64_TLSLD_ADR_PREL21: howto manager. (line 3340) 12277* BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12: howto manager. (line 3344) 12278* BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC: howto manager. 12279 (line 3348) 12280* BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12: howto manager. (line 3352) 12281* BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC: howto manager. 12282 (line 3356) 12283* BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12: howto manager. (line 3360) 12284* BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC: howto manager. 12285 (line 3364) 12286* BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12: howto manager. (line 3368) 12287* BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC: howto manager. 12288 (line 3372) 12289* BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12: howto manager. (line 3491) 12290* BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12_NC: howto manager. 12291 (line 3496) 12292* BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0: howto manager. (line 3376) 12293* BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0_NC: howto manager. (line 3379) 12294* BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1: howto manager. (line 3382) 12295* BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1_NC: howto manager. (line 3385) 12296* BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G2: howto manager. (line 3388) 12297* BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_HI12: howto manager. (line 3406) 12298* BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12: howto manager. (line 3409) 12299* BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12_NC: howto manager. (line 3412) 12300* BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0: howto manager. (line 3400) 12301* BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0_NC: howto manager. (line 3403) 12302* BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1: howto manager. (line 3394) 12303* BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1_NC: howto manager. (line 3397) 12304* BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G2: howto manager. (line 3391) 12305* BFD_RELOC_AARCH64_TSTBR14: howto manager. (line 3201) 12306* BFD_RELOC_AC_SECTFOFF_S9: howto manager. (line 1109) 12307* BFD_RELOC_AC_SECTFOFF_S9_1: howto manager. (line 1110) 12308* BFD_RELOC_AC_SECTFOFF_S9_2: howto manager. (line 1111) 12309* BFD_RELOC_AC_SECTOFF_U8: howto manager. (line 1106) 12310* BFD_RELOC_AC_SECTOFF_U8_1: howto manager. (line 1107) 12311* BFD_RELOC_AC_SECTOFF_U8_2: howto manager. (line 1108) 12312* BFD_RELOC_ALPHA_BOH: howto manager. (line 323) 12313* BFD_RELOC_ALPHA_BRSGP: howto manager. (line 306) 12314* BFD_RELOC_ALPHA_BSR: howto manager. (line 315) 12315* BFD_RELOC_ALPHA_CODEADDR: howto manager. (line 297) 12316* BFD_RELOC_ALPHA_DTPMOD64: howto manager. (line 329) 12317* BFD_RELOC_ALPHA_DTPREL16: howto manager. (line 334) 12318* BFD_RELOC_ALPHA_DTPREL64: howto manager. (line 331) 12319* BFD_RELOC_ALPHA_DTPREL_HI16: howto manager. (line 332) 12320* BFD_RELOC_ALPHA_DTPREL_LO16: howto manager. (line 333) 12321* BFD_RELOC_ALPHA_ELF_LITERAL: howto manager. (line 262) 12322* BFD_RELOC_ALPHA_GOTDTPREL16: howto manager. (line 330) 12323* BFD_RELOC_ALPHA_GOTTPREL16: howto manager. (line 335) 12324* BFD_RELOC_ALPHA_GPDISP: howto manager. (line 256) 12325* BFD_RELOC_ALPHA_GPDISP_HI16: howto manager. (line 242) 12326* BFD_RELOC_ALPHA_GPDISP_LO16: howto manager. (line 250) 12327* BFD_RELOC_ALPHA_GPREL_HI16: howto manager. (line 301) 12328* BFD_RELOC_ALPHA_GPREL_LO16: howto manager. (line 302) 12329* BFD_RELOC_ALPHA_HINT: howto manager. (line 288) 12330* BFD_RELOC_ALPHA_LDA: howto manager. (line 319) 12331* BFD_RELOC_ALPHA_LINKAGE: howto manager. (line 293) 12332* BFD_RELOC_ALPHA_LITERAL: howto manager. (line 261) 12333* BFD_RELOC_ALPHA_LITUSE: howto manager. (line 263) 12334* BFD_RELOC_ALPHA_NOP: howto manager. (line 311) 12335* BFD_RELOC_ALPHA_TLSGD: howto manager. (line 327) 12336* BFD_RELOC_ALPHA_TLSLDM: howto manager. (line 328) 12337* BFD_RELOC_ALPHA_TPREL16: howto manager. (line 339) 12338* BFD_RELOC_ALPHA_TPREL64: howto manager. (line 336) 12339* BFD_RELOC_ALPHA_TPREL_HI16: howto manager. (line 337) 12340* BFD_RELOC_ALPHA_TPREL_LO16: howto manager. (line 338) 12341* BFD_RELOC_ARC_16: howto manager. (line 1078) 12342* BFD_RELOC_ARC_24: howto manager. (line 1079) 12343* BFD_RELOC_ARC_32: howto manager. (line 1080) 12344* BFD_RELOC_ARC_32_ME: howto manager. (line 1100) 12345* BFD_RELOC_ARC_32_ME_S: howto manager. (line 1101) 12346* BFD_RELOC_ARC_32_PCREL: howto manager. (line 1117) 12347* BFD_RELOC_ARC_8: howto manager. (line 1077) 12348* BFD_RELOC_ARC_COPY: howto manager. (line 1122) 12349* BFD_RELOC_ARC_GLOB_DAT: howto manager. (line 1123) 12350* BFD_RELOC_ARC_GOT32: howto manager. (line 1119) 12351* BFD_RELOC_ARC_GOTOFF: howto manager. (line 1126) 12352* BFD_RELOC_ARC_GOTPC: howto manager. (line 1127) 12353* BFD_RELOC_ARC_GOTPC32: howto manager. (line 1120) 12354* BFD_RELOC_ARC_JMP_SLOT: howto manager. (line 1124) 12355* BFD_RELOC_ARC_N16: howto manager. (line 1082) 12356* BFD_RELOC_ARC_N24: howto manager. (line 1083) 12357* BFD_RELOC_ARC_N32: howto manager. (line 1084) 12358* BFD_RELOC_ARC_N32_ME: howto manager. (line 1102) 12359* BFD_RELOC_ARC_N8: howto manager. (line 1081) 12360* BFD_RELOC_ARC_NONE: howto manager. (line 1076) 12361* BFD_RELOC_ARC_NPS_CMEM16: howto manager. (line 1142) 12362* BFD_RELOC_ARC_PC32: howto manager. (line 1118) 12363* BFD_RELOC_ARC_PLT32: howto manager. (line 1121) 12364* BFD_RELOC_ARC_RELATIVE: howto manager. (line 1125) 12365* BFD_RELOC_ARC_S13_PCREL: howto manager. (line 1098) 12366* BFD_RELOC_ARC_S21H_PCREL: howto manager. (line 1087) 12367* BFD_RELOC_ARC_S21H_PCREL_PLT: howto manager. (line 1141) 12368* BFD_RELOC_ARC_S21W_PCREL: howto manager. (line 1088) 12369* BFD_RELOC_ARC_S21W_PCREL_PLT: howto manager. (line 1128) 12370* BFD_RELOC_ARC_S25H_PCREL: howto manager. (line 1089) 12371* BFD_RELOC_ARC_S25H_PCREL_PLT: howto manager. (line 1129) 12372* BFD_RELOC_ARC_S25W_PCREL: howto manager. (line 1090) 12373* BFD_RELOC_ARC_S25W_PCREL_PLT: howto manager. (line 1140) 12374* BFD_RELOC_ARC_SDA: howto manager. (line 1085) 12375* BFD_RELOC_ARC_SDA16_LD: howto manager. (line 1095) 12376* BFD_RELOC_ARC_SDA16_LD1: howto manager. (line 1096) 12377* BFD_RELOC_ARC_SDA16_LD2: howto manager. (line 1097) 12378* BFD_RELOC_ARC_SDA16_ST2: howto manager. (line 1116) 12379* BFD_RELOC_ARC_SDA32: howto manager. (line 1091) 12380* BFD_RELOC_ARC_SDA32_ME: howto manager. (line 1104) 12381* BFD_RELOC_ARC_SDA_LDST: howto manager. (line 1092) 12382* BFD_RELOC_ARC_SDA_LDST1: howto manager. (line 1093) 12383* BFD_RELOC_ARC_SDA_LDST2: howto manager. (line 1094) 12384* BFD_RELOC_ARC_SECTOFF: howto manager. (line 1086) 12385* BFD_RELOC_ARC_SECTOFF_1: howto manager. (line 1114) 12386* BFD_RELOC_ARC_SECTOFF_2: howto manager. (line 1115) 12387* BFD_RELOC_ARC_SECTOFF_ME: howto manager. (line 1103) 12388* BFD_RELOC_ARC_SECTOFF_ME_1: howto manager. (line 1112) 12389* BFD_RELOC_ARC_SECTOFF_ME_2: howto manager. (line 1113) 12390* BFD_RELOC_ARC_TLS_DTPMOD: howto manager. (line 1130) 12391* BFD_RELOC_ARC_TLS_DTPOFF: howto manager. (line 1136) 12392* BFD_RELOC_ARC_TLS_DTPOFF_S9: howto manager. (line 1137) 12393* BFD_RELOC_ARC_TLS_GD_CALL: howto manager. (line 1134) 12394* BFD_RELOC_ARC_TLS_GD_GOT: howto manager. (line 1132) 12395* BFD_RELOC_ARC_TLS_GD_LD: howto manager. (line 1133) 12396* BFD_RELOC_ARC_TLS_IE_GOT: howto manager. (line 1135) 12397* BFD_RELOC_ARC_TLS_LE_32: howto manager. (line 1139) 12398* BFD_RELOC_ARC_TLS_LE_S9: howto manager. (line 1138) 12399* BFD_RELOC_ARC_TLS_TPOFF: howto manager. (line 1131) 12400* BFD_RELOC_ARC_W: howto manager. (line 1099) 12401* BFD_RELOC_ARC_W_ME: howto manager. (line 1105) 12402* BFD_RELOC_ARM_ADR_IMM: howto manager. (line 962) 12403* BFD_RELOC_ARM_ADRL_IMMEDIATE: howto manager. (line 948) 12404* BFD_RELOC_ARM_ALU_PC_G0: howto manager. (line 906) 12405* BFD_RELOC_ARM_ALU_PC_G0_NC: howto manager. (line 905) 12406* BFD_RELOC_ARM_ALU_PC_G1: howto manager. (line 908) 12407* BFD_RELOC_ARM_ALU_PC_G1_NC: howto manager. (line 907) 12408* BFD_RELOC_ARM_ALU_PC_G2: howto manager. (line 909) 12409* BFD_RELOC_ARM_ALU_SB_G0: howto manager. (line 920) 12410* BFD_RELOC_ARM_ALU_SB_G0_NC: howto manager. (line 919) 12411* BFD_RELOC_ARM_ALU_SB_G1: howto manager. (line 922) 12412* BFD_RELOC_ARM_ALU_SB_G1_NC: howto manager. (line 921) 12413* BFD_RELOC_ARM_ALU_SB_G2: howto manager. (line 923) 12414* BFD_RELOC_ARM_CP_OFF_IMM: howto manager. (line 958) 12415* BFD_RELOC_ARM_CP_OFF_IMM_S2: howto manager. (line 959) 12416* BFD_RELOC_ARM_GLOB_DAT: howto manager. (line 880) 12417* BFD_RELOC_ARM_GOT32: howto manager. (line 881) 12418* BFD_RELOC_ARM_GOT_PREL: howto manager. (line 886) 12419* BFD_RELOC_ARM_GOTOFF: howto manager. (line 884) 12420* BFD_RELOC_ARM_GOTPC: howto manager. (line 885) 12421* BFD_RELOC_ARM_HVC: howto manager. (line 955) 12422* BFD_RELOC_ARM_HWLITERAL: howto manager. (line 969) 12423* BFD_RELOC_ARM_IMMEDIATE: howto manager. (line 947) 12424* BFD_RELOC_ARM_IN_POOL: howto manager. (line 965) 12425* BFD_RELOC_ARM_IRELATIVE: howto manager. (line 938) 12426* BFD_RELOC_ARM_JUMP_SLOT: howto manager. (line 879) 12427* BFD_RELOC_ARM_LDC_PC_G0: howto manager. (line 916) 12428* BFD_RELOC_ARM_LDC_PC_G1: howto manager. (line 917) 12429* BFD_RELOC_ARM_LDC_PC_G2: howto manager. (line 918) 12430* BFD_RELOC_ARM_LDC_SB_G0: howto manager. (line 930) 12431* BFD_RELOC_ARM_LDC_SB_G1: howto manager. (line 931) 12432* BFD_RELOC_ARM_LDC_SB_G2: howto manager. (line 932) 12433* BFD_RELOC_ARM_LDR_IMM: howto manager. (line 963) 12434* BFD_RELOC_ARM_LDR_PC_G0: howto manager. (line 910) 12435* BFD_RELOC_ARM_LDR_PC_G1: howto manager. (line 911) 12436* BFD_RELOC_ARM_LDR_PC_G2: howto manager. (line 912) 12437* BFD_RELOC_ARM_LDR_SB_G0: howto manager. (line 924) 12438* BFD_RELOC_ARM_LDR_SB_G1: howto manager. (line 925) 12439* BFD_RELOC_ARM_LDR_SB_G2: howto manager. (line 926) 12440* BFD_RELOC_ARM_LDRS_PC_G0: howto manager. (line 913) 12441* BFD_RELOC_ARM_LDRS_PC_G1: howto manager. (line 914) 12442* BFD_RELOC_ARM_LDRS_PC_G2: howto manager. (line 915) 12443* BFD_RELOC_ARM_LDRS_SB_G0: howto manager. (line 927) 12444* BFD_RELOC_ARM_LDRS_SB_G1: howto manager. (line 928) 12445* BFD_RELOC_ARM_LDRS_SB_G2: howto manager. (line 929) 12446* BFD_RELOC_ARM_LITERAL: howto manager. (line 964) 12447* BFD_RELOC_ARM_MOVT: howto manager. (line 870) 12448* BFD_RELOC_ARM_MOVT_PCREL: howto manager. (line 872) 12449* BFD_RELOC_ARM_MOVW: howto manager. (line 869) 12450* BFD_RELOC_ARM_MOVW_PCREL: howto manager. (line 871) 12451* BFD_RELOC_ARM_MULTI: howto manager. (line 957) 12452* BFD_RELOC_ARM_OFFSET_IMM: howto manager. (line 843) 12453* BFD_RELOC_ARM_OFFSET_IMM8: howto manager. (line 966) 12454* BFD_RELOC_ARM_PCREL_BLX: howto manager. (line 814) 12455* BFD_RELOC_ARM_PCREL_BRANCH: howto manager. (line 810) 12456* BFD_RELOC_ARM_PCREL_CALL: howto manager. (line 824) 12457* BFD_RELOC_ARM_PCREL_JUMP: howto manager. (line 828) 12458* BFD_RELOC_ARM_PLT32: howto manager. (line 882) 12459* BFD_RELOC_ARM_PREL31: howto manager. (line 866) 12460* BFD_RELOC_ARM_RELATIVE: howto manager. (line 883) 12461* BFD_RELOC_ARM_ROSEGREL32: howto manager. (line 855) 12462* BFD_RELOC_ARM_SBREL32: howto manager. (line 858) 12463* BFD_RELOC_ARM_SHIFT_IMM: howto manager. (line 953) 12464* BFD_RELOC_ARM_SMC: howto manager. (line 954) 12465* BFD_RELOC_ARM_SWI: howto manager. (line 956) 12466* BFD_RELOC_ARM_T32_ADD_IMM: howto manager. (line 950) 12467* BFD_RELOC_ARM_T32_ADD_PC12: howto manager. (line 952) 12468* BFD_RELOC_ARM_T32_CP_OFF_IMM: howto manager. (line 960) 12469* BFD_RELOC_ARM_T32_CP_OFF_IMM_S2: howto manager. (line 961) 12470* BFD_RELOC_ARM_T32_IMM12: howto manager. (line 951) 12471* BFD_RELOC_ARM_T32_IMMEDIATE: howto manager. (line 949) 12472* BFD_RELOC_ARM_T32_OFFSET_IMM: howto manager. (line 968) 12473* BFD_RELOC_ARM_T32_OFFSET_U8: howto manager. (line 967) 12474* BFD_RELOC_ARM_TARGET1: howto manager. (line 851) 12475* BFD_RELOC_ARM_TARGET2: howto manager. (line 861) 12476* BFD_RELOC_ARM_THM_TLS_CALL: howto manager. (line 899) 12477* BFD_RELOC_ARM_THM_TLS_DESCSEQ: howto manager. (line 901) 12478* BFD_RELOC_ARM_THUMB_ADD: howto manager. (line 970) 12479* BFD_RELOC_ARM_THUMB_ALU_ABS_G0_NC: howto manager. (line 941) 12480* BFD_RELOC_ARM_THUMB_ALU_ABS_G1_NC: howto manager. (line 942) 12481* BFD_RELOC_ARM_THUMB_ALU_ABS_G2_NC: howto manager. (line 943) 12482* BFD_RELOC_ARM_THUMB_ALU_ABS_G3_NC: howto manager. (line 944) 12483* BFD_RELOC_ARM_THUMB_IMM: howto manager. (line 971) 12484* BFD_RELOC_ARM_THUMB_MOVT: howto manager. (line 874) 12485* BFD_RELOC_ARM_THUMB_MOVT_PCREL: howto manager. (line 876) 12486* BFD_RELOC_ARM_THUMB_MOVW: howto manager. (line 873) 12487* BFD_RELOC_ARM_THUMB_MOVW_PCREL: howto manager. (line 875) 12488* BFD_RELOC_ARM_THUMB_OFFSET: howto manager. (line 847) 12489* BFD_RELOC_ARM_THUMB_SHIFT: howto manager. (line 972) 12490* BFD_RELOC_ARM_TLS_CALL: howto manager. (line 898) 12491* BFD_RELOC_ARM_TLS_DESC: howto manager. (line 902) 12492* BFD_RELOC_ARM_TLS_DESCSEQ: howto manager. (line 900) 12493* BFD_RELOC_ARM_TLS_DTPMOD32: howto manager. (line 893) 12494* BFD_RELOC_ARM_TLS_DTPOFF32: howto manager. (line 892) 12495* BFD_RELOC_ARM_TLS_GD32: howto manager. (line 889) 12496* BFD_RELOC_ARM_TLS_GOTDESC: howto manager. (line 897) 12497* BFD_RELOC_ARM_TLS_IE32: howto manager. (line 895) 12498* BFD_RELOC_ARM_TLS_LDM32: howto manager. (line 891) 12499* BFD_RELOC_ARM_TLS_LDO32: howto manager. (line 890) 12500* BFD_RELOC_ARM_TLS_LE32: howto manager. (line 896) 12501* BFD_RELOC_ARM_TLS_TPOFF32: howto manager. (line 894) 12502* BFD_RELOC_ARM_V4BX: howto manager. (line 935) 12503* BFD_RELOC_AVR_13_PCREL: howto manager. (line 1930) 12504* BFD_RELOC_AVR_16_PM: howto manager. (line 1934) 12505* BFD_RELOC_AVR_6: howto manager. (line 2021) 12506* BFD_RELOC_AVR_6_ADIW: howto manager. (line 2025) 12507* BFD_RELOC_AVR_7_PCREL: howto manager. (line 1926) 12508* BFD_RELOC_AVR_8_HI: howto manager. (line 2033) 12509* BFD_RELOC_AVR_8_HLO: howto manager. (line 2037) 12510* BFD_RELOC_AVR_8_LO: howto manager. (line 2029) 12511* BFD_RELOC_AVR_CALL: howto manager. (line 2013) 12512* BFD_RELOC_AVR_DIFF16: howto manager. (line 2042) 12513* BFD_RELOC_AVR_DIFF32: howto manager. (line 2043) 12514* BFD_RELOC_AVR_DIFF8: howto manager. (line 2041) 12515* BFD_RELOC_AVR_HH8_LDI: howto manager. (line 1946) 12516* BFD_RELOC_AVR_HH8_LDI_NEG: howto manager. (line 1965) 12517* BFD_RELOC_AVR_HH8_LDI_PM: howto manager. (line 1994) 12518* BFD_RELOC_AVR_HH8_LDI_PM_NEG: howto manager. (line 2008) 12519* BFD_RELOC_AVR_HI8_LDI: howto manager. (line 1942) 12520* BFD_RELOC_AVR_HI8_LDI_GS: howto manager. (line 1988) 12521* BFD_RELOC_AVR_HI8_LDI_NEG: howto manager. (line 1960) 12522* BFD_RELOC_AVR_HI8_LDI_PM: howto manager. (line 1984) 12523* BFD_RELOC_AVR_HI8_LDI_PM_NEG: howto manager. (line 2003) 12524* BFD_RELOC_AVR_LDI: howto manager. (line 2017) 12525* BFD_RELOC_AVR_LDS_STS_16: howto manager. (line 2051) 12526* BFD_RELOC_AVR_LO8_LDI: howto manager. (line 1938) 12527* BFD_RELOC_AVR_LO8_LDI_GS: howto manager. (line 1978) 12528* BFD_RELOC_AVR_LO8_LDI_NEG: howto manager. (line 1955) 12529* BFD_RELOC_AVR_LO8_LDI_PM: howto manager. (line 1974) 12530* BFD_RELOC_AVR_LO8_LDI_PM_NEG: howto manager. (line 1999) 12531* BFD_RELOC_AVR_MS8_LDI: howto manager. (line 1951) 12532* BFD_RELOC_AVR_MS8_LDI_NEG: howto manager. (line 1970) 12533* BFD_RELOC_AVR_PORT5: howto manager. (line 2059) 12534* BFD_RELOC_AVR_PORT6: howto manager. (line 2055) 12535* BFD_RELOC_BFIN_10_PCREL: howto manager. (line 1160) 12536* BFD_RELOC_BFIN_11_PCREL: howto manager. (line 1163) 12537* BFD_RELOC_BFIN_12_PCREL_JUMP: howto manager. (line 1166) 12538* BFD_RELOC_BFIN_12_PCREL_JUMP_S: howto manager. (line 1169) 12539* BFD_RELOC_BFIN_16_HIGH: howto manager. (line 1148) 12540* BFD_RELOC_BFIN_16_IMM: howto manager. (line 1145) 12541* BFD_RELOC_BFIN_16_LOW: howto manager. (line 1157) 12542* BFD_RELOC_BFIN_24_PCREL_CALL_X: howto manager. (line 1172) 12543* BFD_RELOC_BFIN_24_PCREL_JUMP_L: howto manager. (line 1175) 12544* BFD_RELOC_BFIN_4_PCREL: howto manager. (line 1151) 12545* BFD_RELOC_BFIN_5_PCREL: howto manager. (line 1154) 12546* BFD_RELOC_BFIN_FUNCDESC: howto manager. (line 1181) 12547* BFD_RELOC_BFIN_FUNCDESC_GOT17M4: howto manager. (line 1182) 12548* BFD_RELOC_BFIN_FUNCDESC_GOTHI: howto manager. (line 1183) 12549* BFD_RELOC_BFIN_FUNCDESC_GOTLO: howto manager. (line 1184) 12550* BFD_RELOC_BFIN_FUNCDESC_GOTOFF17M4: howto manager. (line 1186) 12551* BFD_RELOC_BFIN_FUNCDESC_GOTOFFHI: howto manager. (line 1187) 12552* BFD_RELOC_BFIN_FUNCDESC_GOTOFFLO: howto manager. (line 1188) 12553* BFD_RELOC_BFIN_FUNCDESC_VALUE: howto manager. (line 1185) 12554* BFD_RELOC_BFIN_GOT: howto manager. (line 1194) 12555* BFD_RELOC_BFIN_GOT17M4: howto manager. (line 1178) 12556* BFD_RELOC_BFIN_GOTHI: howto manager. (line 1179) 12557* BFD_RELOC_BFIN_GOTLO: howto manager. (line 1180) 12558* BFD_RELOC_BFIN_GOTOFF17M4: howto manager. (line 1189) 12559* BFD_RELOC_BFIN_GOTOFFHI: howto manager. (line 1190) 12560* BFD_RELOC_BFIN_GOTOFFLO: howto manager. (line 1191) 12561* BFD_RELOC_BFIN_PLTPC: howto manager. (line 1197) 12562* BFD_RELOC_C6000_ABS_H16: howto manager. (line 1749) 12563* BFD_RELOC_C6000_ABS_L16: howto manager. (line 1748) 12564* BFD_RELOC_C6000_ABS_S16: howto manager. (line 1747) 12565* BFD_RELOC_C6000_ALIGN: howto manager. (line 1770) 12566* BFD_RELOC_C6000_COPY: howto manager. (line 1765) 12567* BFD_RELOC_C6000_DSBT_INDEX: howto manager. (line 1763) 12568* BFD_RELOC_C6000_EHTYPE: howto manager. (line 1767) 12569* BFD_RELOC_C6000_FPHEAD: howto manager. (line 1771) 12570* BFD_RELOC_C6000_JUMP_SLOT: howto manager. (line 1766) 12571* BFD_RELOC_C6000_NOCMP: howto manager. (line 1772) 12572* BFD_RELOC_C6000_PCR_H16: howto manager. (line 1768) 12573* BFD_RELOC_C6000_PCR_L16: howto manager. (line 1769) 12574* BFD_RELOC_C6000_PCR_S10: howto manager. (line 1745) 12575* BFD_RELOC_C6000_PCR_S12: howto manager. (line 1744) 12576* BFD_RELOC_C6000_PCR_S21: howto manager. (line 1743) 12577* BFD_RELOC_C6000_PCR_S7: howto manager. (line 1746) 12578* BFD_RELOC_C6000_PREL31: howto manager. (line 1764) 12579* BFD_RELOC_C6000_SBR_GOT_H16_W: howto manager. (line 1762) 12580* BFD_RELOC_C6000_SBR_GOT_L16_W: howto manager. (line 1761) 12581* BFD_RELOC_C6000_SBR_GOT_U15_W: howto manager. (line 1760) 12582* BFD_RELOC_C6000_SBR_H16_B: howto manager. (line 1757) 12583* BFD_RELOC_C6000_SBR_H16_H: howto manager. (line 1758) 12584* BFD_RELOC_C6000_SBR_H16_W: howto manager. (line 1759) 12585* BFD_RELOC_C6000_SBR_L16_B: howto manager. (line 1754) 12586* BFD_RELOC_C6000_SBR_L16_H: howto manager. (line 1755) 12587* BFD_RELOC_C6000_SBR_L16_W: howto manager. (line 1756) 12588* BFD_RELOC_C6000_SBR_S16: howto manager. (line 1753) 12589* BFD_RELOC_C6000_SBR_U15_B: howto manager. (line 1750) 12590* BFD_RELOC_C6000_SBR_U15_H: howto manager. (line 1751) 12591* BFD_RELOC_C6000_SBR_U15_W: howto manager. (line 1752) 12592* bfd_reloc_code_type: howto manager. (line 10) 12593* BFD_RELOC_CR16_ABS20: howto manager. (line 2573) 12594* BFD_RELOC_CR16_ABS24: howto manager. (line 2574) 12595* BFD_RELOC_CR16_DISP16: howto manager. (line 2584) 12596* BFD_RELOC_CR16_DISP20: howto manager. (line 2585) 12597* BFD_RELOC_CR16_DISP24: howto manager. (line 2586) 12598* BFD_RELOC_CR16_DISP24a: howto manager. (line 2587) 12599* BFD_RELOC_CR16_DISP4: howto manager. (line 2582) 12600* BFD_RELOC_CR16_DISP8: howto manager. (line 2583) 12601* BFD_RELOC_CR16_GLOB_DAT: howto manager. (line 2593) 12602* BFD_RELOC_CR16_GOT_REGREL20: howto manager. (line 2591) 12603* BFD_RELOC_CR16_GOTC_REGREL20: howto manager. (line 2592) 12604* BFD_RELOC_CR16_IMM16: howto manager. (line 2577) 12605* BFD_RELOC_CR16_IMM20: howto manager. (line 2578) 12606* BFD_RELOC_CR16_IMM24: howto manager. (line 2579) 12607* BFD_RELOC_CR16_IMM32: howto manager. (line 2580) 12608* BFD_RELOC_CR16_IMM32a: howto manager. (line 2581) 12609* BFD_RELOC_CR16_IMM4: howto manager. (line 2575) 12610* BFD_RELOC_CR16_IMM8: howto manager. (line 2576) 12611* BFD_RELOC_CR16_NUM16: howto manager. (line 2562) 12612* BFD_RELOC_CR16_NUM32: howto manager. (line 2563) 12613* BFD_RELOC_CR16_NUM32a: howto manager. (line 2564) 12614* BFD_RELOC_CR16_NUM8: howto manager. (line 2561) 12615* BFD_RELOC_CR16_REGREL0: howto manager. (line 2565) 12616* BFD_RELOC_CR16_REGREL14: howto manager. (line 2568) 12617* BFD_RELOC_CR16_REGREL14a: howto manager. (line 2569) 12618* BFD_RELOC_CR16_REGREL16: howto manager. (line 2570) 12619* BFD_RELOC_CR16_REGREL20: howto manager. (line 2571) 12620* BFD_RELOC_CR16_REGREL20a: howto manager. (line 2572) 12621* BFD_RELOC_CR16_REGREL4: howto manager. (line 2566) 12622* BFD_RELOC_CR16_REGREL4a: howto manager. (line 2567) 12623* BFD_RELOC_CR16_SWITCH16: howto manager. (line 2589) 12624* BFD_RELOC_CR16_SWITCH32: howto manager. (line 2590) 12625* BFD_RELOC_CR16_SWITCH8: howto manager. (line 2588) 12626* BFD_RELOC_CRIS_16_DTPREL: howto manager. (line 2664) 12627* BFD_RELOC_CRIS_16_GOT: howto manager. (line 2640) 12628* BFD_RELOC_CRIS_16_GOT_GD: howto manager. (line 2660) 12629* BFD_RELOC_CRIS_16_GOT_TPREL: howto manager. (line 2666) 12630* BFD_RELOC_CRIS_16_GOTPLT: howto manager. (line 2646) 12631* BFD_RELOC_CRIS_16_TPREL: howto manager. (line 2668) 12632* BFD_RELOC_CRIS_32_DTPREL: howto manager. (line 2663) 12633* BFD_RELOC_CRIS_32_GD: howto manager. (line 2661) 12634* BFD_RELOC_CRIS_32_GOT: howto manager. (line 2637) 12635* BFD_RELOC_CRIS_32_GOT_GD: howto manager. (line 2659) 12636* BFD_RELOC_CRIS_32_GOT_TPREL: howto manager. (line 2665) 12637* BFD_RELOC_CRIS_32_GOTPLT: howto manager. (line 2643) 12638* BFD_RELOC_CRIS_32_GOTREL: howto manager. (line 2649) 12639* BFD_RELOC_CRIS_32_IE: howto manager. (line 2670) 12640* BFD_RELOC_CRIS_32_PLT_GOTREL: howto manager. (line 2652) 12641* BFD_RELOC_CRIS_32_PLT_PCREL: howto manager. (line 2655) 12642* BFD_RELOC_CRIS_32_TPREL: howto manager. (line 2667) 12643* BFD_RELOC_CRIS_BDISP8: howto manager. (line 2618) 12644* BFD_RELOC_CRIS_COPY: howto manager. (line 2631) 12645* BFD_RELOC_CRIS_DTP: howto manager. (line 2662) 12646* BFD_RELOC_CRIS_DTPMOD: howto manager. (line 2669) 12647* BFD_RELOC_CRIS_GLOB_DAT: howto manager. (line 2632) 12648* BFD_RELOC_CRIS_JUMP_SLOT: howto manager. (line 2633) 12649* BFD_RELOC_CRIS_LAPCQ_OFFSET: howto manager. (line 2626) 12650* BFD_RELOC_CRIS_RELATIVE: howto manager. (line 2634) 12651* BFD_RELOC_CRIS_SIGNED_16: howto manager. (line 2624) 12652* BFD_RELOC_CRIS_SIGNED_6: howto manager. (line 2620) 12653* BFD_RELOC_CRIS_SIGNED_8: howto manager. (line 2622) 12654* BFD_RELOC_CRIS_UNSIGNED_16: howto manager. (line 2625) 12655* BFD_RELOC_CRIS_UNSIGNED_4: howto manager. (line 2627) 12656* BFD_RELOC_CRIS_UNSIGNED_5: howto manager. (line 2619) 12657* BFD_RELOC_CRIS_UNSIGNED_6: howto manager. (line 2621) 12658* BFD_RELOC_CRIS_UNSIGNED_8: howto manager. (line 2623) 12659* BFD_RELOC_CRX_ABS16: howto manager. (line 2606) 12660* BFD_RELOC_CRX_ABS32: howto manager. (line 2607) 12661* BFD_RELOC_CRX_IMM16: howto manager. (line 2611) 12662* BFD_RELOC_CRX_IMM32: howto manager. (line 2612) 12663* BFD_RELOC_CRX_NUM16: howto manager. (line 2609) 12664* BFD_RELOC_CRX_NUM32: howto manager. (line 2610) 12665* BFD_RELOC_CRX_NUM8: howto manager. (line 2608) 12666* BFD_RELOC_CRX_REGREL12: howto manager. (line 2602) 12667* BFD_RELOC_CRX_REGREL22: howto manager. (line 2603) 12668* BFD_RELOC_CRX_REGREL28: howto manager. (line 2604) 12669* BFD_RELOC_CRX_REGREL32: howto manager. (line 2605) 12670* BFD_RELOC_CRX_REL16: howto manager. (line 2599) 12671* BFD_RELOC_CRX_REL24: howto manager. (line 2600) 12672* BFD_RELOC_CRX_REL32: howto manager. (line 2601) 12673* BFD_RELOC_CRX_REL4: howto manager. (line 2596) 12674* BFD_RELOC_CRX_REL8: howto manager. (line 2597) 12675* BFD_RELOC_CRX_REL8_CMP: howto manager. (line 2598) 12676* BFD_RELOC_CRX_SWITCH16: howto manager. (line 2614) 12677* BFD_RELOC_CRX_SWITCH32: howto manager. (line 2615) 12678* BFD_RELOC_CRX_SWITCH8: howto manager. (line 2613) 12679* BFD_RELOC_CTOR: howto manager. (line 804) 12680* BFD_RELOC_D10V_10_PCREL_L: howto manager. (line 1264) 12681* BFD_RELOC_D10V_10_PCREL_R: howto manager. (line 1260) 12682* BFD_RELOC_D10V_18: howto manager. (line 1269) 12683* BFD_RELOC_D10V_18_PCREL: howto manager. (line 1272) 12684* BFD_RELOC_D30V_15: howto manager. (line 1287) 12685* BFD_RELOC_D30V_15_PCREL: howto manager. (line 1291) 12686* BFD_RELOC_D30V_15_PCREL_R: howto manager. (line 1295) 12687* BFD_RELOC_D30V_21: howto manager. (line 1300) 12688* BFD_RELOC_D30V_21_PCREL: howto manager. (line 1304) 12689* BFD_RELOC_D30V_21_PCREL_R: howto manager. (line 1308) 12690* BFD_RELOC_D30V_32: howto manager. (line 1313) 12691* BFD_RELOC_D30V_32_PCREL: howto manager. (line 1316) 12692* BFD_RELOC_D30V_6: howto manager. (line 1275) 12693* BFD_RELOC_D30V_9_PCREL: howto manager. (line 1278) 12694* BFD_RELOC_D30V_9_PCREL_R: howto manager. (line 1282) 12695* BFD_RELOC_DLX_HI16_S: howto manager. (line 1319) 12696* BFD_RELOC_DLX_JMP26: howto manager. (line 1325) 12697* BFD_RELOC_DLX_LO16: howto manager. (line 1322) 12698* BFD_RELOC_EPIPHANY_HIGH: howto manager. (line 3710) 12699* BFD_RELOC_EPIPHANY_IMM11: howto manager. (line 3719) 12700* BFD_RELOC_EPIPHANY_IMM8: howto manager. (line 3723) 12701* BFD_RELOC_EPIPHANY_LOW: howto manager. (line 3713) 12702* BFD_RELOC_EPIPHANY_SIMM11: howto manager. (line 3716) 12703* BFD_RELOC_EPIPHANY_SIMM24: howto manager. (line 3707) 12704* BFD_RELOC_EPIPHANY_SIMM8: howto manager. (line 3704) 12705* BFD_RELOC_FR30_10_IN_8: howto manager. (line 1794) 12706* BFD_RELOC_FR30_12_PCREL: howto manager. (line 1802) 12707* BFD_RELOC_FR30_20: howto manager. (line 1778) 12708* BFD_RELOC_FR30_48: howto manager. (line 1775) 12709* BFD_RELOC_FR30_6_IN_4: howto manager. (line 1782) 12710* BFD_RELOC_FR30_8_IN_8: howto manager. (line 1786) 12711* BFD_RELOC_FR30_9_IN_8: howto manager. (line 1790) 12712* BFD_RELOC_FR30_9_PCREL: howto manager. (line 1798) 12713* BFD_RELOC_FRV_FUNCDESC: howto manager. (line 506) 12714* BFD_RELOC_FRV_FUNCDESC_GOT12: howto manager. (line 507) 12715* BFD_RELOC_FRV_FUNCDESC_GOTHI: howto manager. (line 508) 12716* BFD_RELOC_FRV_FUNCDESC_GOTLO: howto manager. (line 509) 12717* BFD_RELOC_FRV_FUNCDESC_GOTOFF12: howto manager. (line 511) 12718* BFD_RELOC_FRV_FUNCDESC_GOTOFFHI: howto manager. (line 512) 12719* BFD_RELOC_FRV_FUNCDESC_GOTOFFLO: howto manager. (line 513) 12720* BFD_RELOC_FRV_FUNCDESC_VALUE: howto manager. (line 510) 12721* BFD_RELOC_FRV_GETTLSOFF: howto manager. (line 517) 12722* BFD_RELOC_FRV_GETTLSOFF_RELAX: howto manager. (line 530) 12723* BFD_RELOC_FRV_GOT12: howto manager. (line 503) 12724* BFD_RELOC_FRV_GOTHI: howto manager. (line 504) 12725* BFD_RELOC_FRV_GOTLO: howto manager. (line 505) 12726* BFD_RELOC_FRV_GOTOFF12: howto manager. (line 514) 12727* BFD_RELOC_FRV_GOTOFFHI: howto manager. (line 515) 12728* BFD_RELOC_FRV_GOTOFFLO: howto manager. (line 516) 12729* BFD_RELOC_FRV_GOTTLSDESC12: howto manager. (line 519) 12730* BFD_RELOC_FRV_GOTTLSDESCHI: howto manager. (line 520) 12731* BFD_RELOC_FRV_GOTTLSDESCLO: howto manager. (line 521) 12732* BFD_RELOC_FRV_GOTTLSOFF12: howto manager. (line 525) 12733* BFD_RELOC_FRV_GOTTLSOFFHI: howto manager. (line 526) 12734* BFD_RELOC_FRV_GOTTLSOFFLO: howto manager. (line 527) 12735* BFD_RELOC_FRV_GPREL12: howto manager. (line 498) 12736* BFD_RELOC_FRV_GPREL32: howto manager. (line 500) 12737* BFD_RELOC_FRV_GPRELHI: howto manager. (line 501) 12738* BFD_RELOC_FRV_GPRELLO: howto manager. (line 502) 12739* BFD_RELOC_FRV_GPRELU12: howto manager. (line 499) 12740* BFD_RELOC_FRV_HI16: howto manager. (line 497) 12741* BFD_RELOC_FRV_LABEL16: howto manager. (line 494) 12742* BFD_RELOC_FRV_LABEL24: howto manager. (line 495) 12743* BFD_RELOC_FRV_LO16: howto manager. (line 496) 12744* BFD_RELOC_FRV_TLSDESC_RELAX: howto manager. (line 529) 12745* BFD_RELOC_FRV_TLSDESC_VALUE: howto manager. (line 518) 12746* BFD_RELOC_FRV_TLSMOFF: howto manager. (line 532) 12747* BFD_RELOC_FRV_TLSMOFF12: howto manager. (line 522) 12748* BFD_RELOC_FRV_TLSMOFFHI: howto manager. (line 523) 12749* BFD_RELOC_FRV_TLSMOFFLO: howto manager. (line 524) 12750* BFD_RELOC_FRV_TLSOFF: howto manager. (line 528) 12751* BFD_RELOC_FRV_TLSOFF_RELAX: howto manager. (line 531) 12752* BFD_RELOC_FT32_10: howto manager. (line 488) 12753* BFD_RELOC_FT32_17: howto manager. (line 490) 12754* BFD_RELOC_FT32_18: howto manager. (line 491) 12755* BFD_RELOC_FT32_20: howto manager. (line 489) 12756* BFD_RELOC_GPREL16: howto manager. (line 125) 12757* BFD_RELOC_GPREL32: howto manager. (line 126) 12758* BFD_RELOC_H8_DIR16A8: howto manager. (line 2733) 12759* BFD_RELOC_H8_DIR16R8: howto manager. (line 2734) 12760* BFD_RELOC_H8_DIR24A8: howto manager. (line 2735) 12761* BFD_RELOC_H8_DIR24R8: howto manager. (line 2736) 12762* BFD_RELOC_H8_DIR32A16: howto manager. (line 2737) 12763* BFD_RELOC_H8_DISP32A16: howto manager. (line 2738) 12764* BFD_RELOC_HI16: howto manager. (line 352) 12765* BFD_RELOC_HI16_BASEREL: howto manager. (line 101) 12766* BFD_RELOC_HI16_GOTOFF: howto manager. (line 57) 12767* BFD_RELOC_HI16_PCREL: howto manager. (line 364) 12768* BFD_RELOC_HI16_PLTOFF: howto manager. (line 69) 12769* BFD_RELOC_HI16_S: howto manager. (line 355) 12770* BFD_RELOC_HI16_S_BASEREL: howto manager. (line 102) 12771* BFD_RELOC_HI16_S_GOTOFF: howto manager. (line 58) 12772* BFD_RELOC_HI16_S_PCREL: howto manager. (line 367) 12773* BFD_RELOC_HI16_S_PLTOFF: howto manager. (line 70) 12774* BFD_RELOC_HI22: howto manager. (line 120) 12775* BFD_RELOC_I370_D12: howto manager. (line 801) 12776* BFD_RELOC_I960_CALLJ: howto manager. (line 132) 12777* BFD_RELOC_IA64_COPY: howto manager. (line 2393) 12778* BFD_RELOC_IA64_DIR32LSB: howto manager. (line 2338) 12779* BFD_RELOC_IA64_DIR32MSB: howto manager. (line 2337) 12780* BFD_RELOC_IA64_DIR64LSB: howto manager. (line 2340) 12781* BFD_RELOC_IA64_DIR64MSB: howto manager. (line 2339) 12782* BFD_RELOC_IA64_DTPMOD64LSB: howto manager. (line 2403) 12783* BFD_RELOC_IA64_DTPMOD64MSB: howto manager. (line 2402) 12784* BFD_RELOC_IA64_DTPREL14: howto manager. (line 2405) 12785* BFD_RELOC_IA64_DTPREL22: howto manager. (line 2406) 12786* BFD_RELOC_IA64_DTPREL32LSB: howto manager. (line 2409) 12787* BFD_RELOC_IA64_DTPREL32MSB: howto manager. (line 2408) 12788* BFD_RELOC_IA64_DTPREL64I: howto manager. (line 2407) 12789* BFD_RELOC_IA64_DTPREL64LSB: howto manager. (line 2411) 12790* BFD_RELOC_IA64_DTPREL64MSB: howto manager. (line 2410) 12791* BFD_RELOC_IA64_FPTR32LSB: howto manager. (line 2355) 12792* BFD_RELOC_IA64_FPTR32MSB: howto manager. (line 2354) 12793* BFD_RELOC_IA64_FPTR64I: howto manager. (line 2353) 12794* BFD_RELOC_IA64_FPTR64LSB: howto manager. (line 2357) 12795* BFD_RELOC_IA64_FPTR64MSB: howto manager. (line 2356) 12796* BFD_RELOC_IA64_GPREL22: howto manager. (line 2341) 12797* BFD_RELOC_IA64_GPREL32LSB: howto manager. (line 2344) 12798* BFD_RELOC_IA64_GPREL32MSB: howto manager. (line 2343) 12799* BFD_RELOC_IA64_GPREL64I: howto manager. (line 2342) 12800* BFD_RELOC_IA64_GPREL64LSB: howto manager. (line 2346) 12801* BFD_RELOC_IA64_GPREL64MSB: howto manager. (line 2345) 12802* BFD_RELOC_IA64_IMM14: howto manager. (line 2334) 12803* BFD_RELOC_IA64_IMM22: howto manager. (line 2335) 12804* BFD_RELOC_IA64_IMM64: howto manager. (line 2336) 12805* BFD_RELOC_IA64_IPLTLSB: howto manager. (line 2392) 12806* BFD_RELOC_IA64_IPLTMSB: howto manager. (line 2391) 12807* BFD_RELOC_IA64_LDXMOV: howto manager. (line 2395) 12808* BFD_RELOC_IA64_LTOFF22: howto manager. (line 2347) 12809* BFD_RELOC_IA64_LTOFF22X: howto manager. (line 2394) 12810* BFD_RELOC_IA64_LTOFF64I: howto manager. (line 2348) 12811* BFD_RELOC_IA64_LTOFF_DTPMOD22: howto manager. (line 2404) 12812* BFD_RELOC_IA64_LTOFF_DTPREL22: howto manager. (line 2412) 12813* BFD_RELOC_IA64_LTOFF_FPTR22: howto manager. (line 2369) 12814* BFD_RELOC_IA64_LTOFF_FPTR32LSB: howto manager. (line 2372) 12815* BFD_RELOC_IA64_LTOFF_FPTR32MSB: howto manager. (line 2371) 12816* BFD_RELOC_IA64_LTOFF_FPTR64I: howto manager. (line 2370) 12817* BFD_RELOC_IA64_LTOFF_FPTR64LSB: howto manager. (line 2374) 12818* BFD_RELOC_IA64_LTOFF_FPTR64MSB: howto manager. (line 2373) 12819* BFD_RELOC_IA64_LTOFF_TPREL22: howto manager. (line 2401) 12820* BFD_RELOC_IA64_LTV32LSB: howto manager. (line 2388) 12821* BFD_RELOC_IA64_LTV32MSB: howto manager. (line 2387) 12822* BFD_RELOC_IA64_LTV64LSB: howto manager. (line 2390) 12823* BFD_RELOC_IA64_LTV64MSB: howto manager. (line 2389) 12824* BFD_RELOC_IA64_PCREL21B: howto manager. (line 2358) 12825* BFD_RELOC_IA64_PCREL21BI: howto manager. (line 2359) 12826* BFD_RELOC_IA64_PCREL21F: howto manager. (line 2361) 12827* BFD_RELOC_IA64_PCREL21M: howto manager. (line 2360) 12828* BFD_RELOC_IA64_PCREL22: howto manager. (line 2362) 12829* BFD_RELOC_IA64_PCREL32LSB: howto manager. (line 2366) 12830* BFD_RELOC_IA64_PCREL32MSB: howto manager. (line 2365) 12831* BFD_RELOC_IA64_PCREL60B: howto manager. (line 2363) 12832* BFD_RELOC_IA64_PCREL64I: howto manager. (line 2364) 12833* BFD_RELOC_IA64_PCREL64LSB: howto manager. (line 2368) 12834* BFD_RELOC_IA64_PCREL64MSB: howto manager. (line 2367) 12835* BFD_RELOC_IA64_PLTOFF22: howto manager. (line 2349) 12836* BFD_RELOC_IA64_PLTOFF64I: howto manager. (line 2350) 12837* BFD_RELOC_IA64_PLTOFF64LSB: howto manager. (line 2352) 12838* BFD_RELOC_IA64_PLTOFF64MSB: howto manager. (line 2351) 12839* BFD_RELOC_IA64_REL32LSB: howto manager. (line 2384) 12840* BFD_RELOC_IA64_REL32MSB: howto manager. (line 2383) 12841* BFD_RELOC_IA64_REL64LSB: howto manager. (line 2386) 12842* BFD_RELOC_IA64_REL64MSB: howto manager. (line 2385) 12843* BFD_RELOC_IA64_SECREL32LSB: howto manager. (line 2380) 12844* BFD_RELOC_IA64_SECREL32MSB: howto manager. (line 2379) 12845* BFD_RELOC_IA64_SECREL64LSB: howto manager. (line 2382) 12846* BFD_RELOC_IA64_SECREL64MSB: howto manager. (line 2381) 12847* BFD_RELOC_IA64_SEGREL32LSB: howto manager. (line 2376) 12848* BFD_RELOC_IA64_SEGREL32MSB: howto manager. (line 2375) 12849* BFD_RELOC_IA64_SEGREL64LSB: howto manager. (line 2378) 12850* BFD_RELOC_IA64_SEGREL64MSB: howto manager. (line 2377) 12851* BFD_RELOC_IA64_TPREL14: howto manager. (line 2396) 12852* BFD_RELOC_IA64_TPREL22: howto manager. (line 2397) 12853* BFD_RELOC_IA64_TPREL64I: howto manager. (line 2398) 12854* BFD_RELOC_IA64_TPREL64LSB: howto manager. (line 2400) 12855* BFD_RELOC_IA64_TPREL64MSB: howto manager. (line 2399) 12856* BFD_RELOC_IP2K_ADDR16CJP: howto manager. (line 2286) 12857* BFD_RELOC_IP2K_BANK: howto manager. (line 2283) 12858* BFD_RELOC_IP2K_EX8DATA: howto manager. (line 2294) 12859* BFD_RELOC_IP2K_FR9: howto manager. (line 2280) 12860* BFD_RELOC_IP2K_FR_OFFSET: howto manager. (line 2307) 12861* BFD_RELOC_IP2K_HI8DATA: howto manager. (line 2293) 12862* BFD_RELOC_IP2K_HI8INSN: howto manager. (line 2298) 12863* BFD_RELOC_IP2K_LO8DATA: howto manager. (line 2292) 12864* BFD_RELOC_IP2K_LO8INSN: howto manager. (line 2297) 12865* BFD_RELOC_IP2K_PAGE3: howto manager. (line 2289) 12866* BFD_RELOC_IP2K_PC_SKIP: howto manager. (line 2301) 12867* BFD_RELOC_IP2K_TEXT: howto manager. (line 2304) 12868* BFD_RELOC_IQ2000_OFFSET_16: howto manager. (line 2857) 12869* BFD_RELOC_IQ2000_OFFSET_21: howto manager. (line 2858) 12870* BFD_RELOC_IQ2000_UHI16: howto manager. (line 2859) 12871* BFD_RELOC_LM32_16_GOT: howto manager. (line 2964) 12872* BFD_RELOC_LM32_BRANCH: howto manager. (line 2963) 12873* BFD_RELOC_LM32_CALL: howto manager. (line 2962) 12874* BFD_RELOC_LM32_COPY: howto manager. (line 2967) 12875* BFD_RELOC_LM32_GLOB_DAT: howto manager. (line 2968) 12876* BFD_RELOC_LM32_GOTOFF_HI16: howto manager. (line 2965) 12877* BFD_RELOC_LM32_GOTOFF_LO16: howto manager. (line 2966) 12878* BFD_RELOC_LM32_JMP_SLOT: howto manager. (line 2969) 12879* BFD_RELOC_LM32_RELATIVE: howto manager. (line 2970) 12880* BFD_RELOC_LO10: howto manager. (line 121) 12881* BFD_RELOC_LO16: howto manager. (line 361) 12882* BFD_RELOC_LO16_BASEREL: howto manager. (line 100) 12883* BFD_RELOC_LO16_GOTOFF: howto manager. (line 56) 12884* BFD_RELOC_LO16_PCREL: howto manager. (line 370) 12885* BFD_RELOC_LO16_PLTOFF: howto manager. (line 68) 12886* BFD_RELOC_M32C_HI8: howto manager. (line 1328) 12887* BFD_RELOC_M32C_RL_1ADDR: howto manager. (line 1330) 12888* BFD_RELOC_M32C_RL_2ADDR: howto manager. (line 1331) 12889* BFD_RELOC_M32C_RL_JUMP: howto manager. (line 1329) 12890* BFD_RELOC_M32R_10_PCREL: howto manager. (line 1338) 12891* BFD_RELOC_M32R_18_PCREL: howto manager. (line 1342) 12892* BFD_RELOC_M32R_24: howto manager. (line 1334) 12893* BFD_RELOC_M32R_26_PCREL: howto manager. (line 1345) 12894* BFD_RELOC_M32R_26_PLTREL: howto manager. (line 1364) 12895* BFD_RELOC_M32R_COPY: howto manager. (line 1365) 12896* BFD_RELOC_M32R_GLOB_DAT: howto manager. (line 1366) 12897* BFD_RELOC_M32R_GOT16_HI_SLO: howto manager. (line 1375) 12898* BFD_RELOC_M32R_GOT16_HI_ULO: howto manager. (line 1374) 12899* BFD_RELOC_M32R_GOT16_LO: howto manager. (line 1376) 12900* BFD_RELOC_M32R_GOT24: howto manager. (line 1363) 12901* BFD_RELOC_M32R_GOTOFF: howto manager. (line 1369) 12902* BFD_RELOC_M32R_GOTOFF_HI_SLO: howto manager. (line 1371) 12903* BFD_RELOC_M32R_GOTOFF_HI_ULO: howto manager. (line 1370) 12904* BFD_RELOC_M32R_GOTOFF_LO: howto manager. (line 1372) 12905* BFD_RELOC_M32R_GOTPC24: howto manager. (line 1373) 12906* BFD_RELOC_M32R_GOTPC_HI_SLO: howto manager. (line 1378) 12907* BFD_RELOC_M32R_GOTPC_HI_ULO: howto manager. (line 1377) 12908* BFD_RELOC_M32R_GOTPC_LO: howto manager. (line 1379) 12909* BFD_RELOC_M32R_HI16_SLO: howto manager. (line 1352) 12910* BFD_RELOC_M32R_HI16_ULO: howto manager. (line 1348) 12911* BFD_RELOC_M32R_JMP_SLOT: howto manager. (line 1367) 12912* BFD_RELOC_M32R_LO16: howto manager. (line 1356) 12913* BFD_RELOC_M32R_RELATIVE: howto manager. (line 1368) 12914* BFD_RELOC_M32R_SDA16: howto manager. (line 1359) 12915* BFD_RELOC_M68HC11_24: howto manager. (line 2448) 12916* BFD_RELOC_M68HC11_3B: howto manager. (line 2423) 12917* BFD_RELOC_M68HC11_HI8: howto manager. (line 2415) 12918* BFD_RELOC_M68HC11_LO16: howto manager. (line 2437) 12919* BFD_RELOC_M68HC11_LO8: howto manager. (line 2419) 12920* BFD_RELOC_M68HC11_PAGE: howto manager. (line 2443) 12921* BFD_RELOC_M68HC11_RL_GROUP: howto manager. (line 2432) 12922* BFD_RELOC_M68HC11_RL_JUMP: howto manager. (line 2426) 12923* BFD_RELOC_M68HC12_10_PCREL: howto manager. (line 2508) 12924* BFD_RELOC_M68HC12_16B: howto manager. (line 2502) 12925* BFD_RELOC_M68HC12_5B: howto manager. (line 2454) 12926* BFD_RELOC_M68HC12_9_PCREL: howto manager. (line 2505) 12927* BFD_RELOC_M68HC12_9B: howto manager. (line 2499) 12928* BFD_RELOC_M68HC12_HI8XG: howto manager. (line 2515) 12929* BFD_RELOC_M68HC12_LO8XG: howto manager. (line 2511) 12930* BFD_RELOC_MACH_O_ARM64_ADDEND: howto manager. (line 3010) 12931* BFD_RELOC_MACH_O_ARM64_GOT_LOAD_PAGE21: howto manager. (line 3013) 12932* BFD_RELOC_MACH_O_ARM64_GOT_LOAD_PAGEOFF12: howto manager. (line 3016) 12933* BFD_RELOC_MACH_O_ARM64_POINTER_TO_GOT: howto manager. (line 3019) 12934* BFD_RELOC_MACH_O_LOCAL_SECTDIFF: howto manager. (line 2977) 12935* BFD_RELOC_MACH_O_PAIR: howto manager. (line 2980) 12936* BFD_RELOC_MACH_O_SECTDIFF: howto manager. (line 2973) 12937* BFD_RELOC_MACH_O_SUBTRACTOR32: howto manager. (line 2983) 12938* BFD_RELOC_MACH_O_SUBTRACTOR64: howto manager. (line 2986) 12939* BFD_RELOC_MACH_O_X86_64_BRANCH32: howto manager. (line 2989) 12940* BFD_RELOC_MACH_O_X86_64_BRANCH8: howto manager. (line 2990) 12941* BFD_RELOC_MACH_O_X86_64_GOT: howto manager. (line 2994) 12942* BFD_RELOC_MACH_O_X86_64_GOT_LOAD: howto manager. (line 2997) 12943* BFD_RELOC_MACH_O_X86_64_PCREL32_1: howto manager. (line 3001) 12944* BFD_RELOC_MACH_O_X86_64_PCREL32_2: howto manager. (line 3004) 12945* BFD_RELOC_MACH_O_X86_64_PCREL32_4: howto manager. (line 3007) 12946* BFD_RELOC_MCORE_PCREL_32: howto manager. (line 1809) 12947* BFD_RELOC_MCORE_PCREL_IMM11BY2: howto manager. (line 1807) 12948* BFD_RELOC_MCORE_PCREL_IMM4BY2: howto manager. (line 1808) 12949* BFD_RELOC_MCORE_PCREL_IMM8BY4: howto manager. (line 1806) 12950* BFD_RELOC_MCORE_PCREL_JSR_IMM11BY2: howto manager. (line 1810) 12951* BFD_RELOC_MCORE_RVA: howto manager. (line 1811) 12952* BFD_RELOC_MEP_16: howto manager. (line 1815) 12953* BFD_RELOC_MEP_32: howto manager. (line 1816) 12954* BFD_RELOC_MEP_8: howto manager. (line 1814) 12955* BFD_RELOC_MEP_ADDR24A4: howto manager. (line 1831) 12956* BFD_RELOC_MEP_GNU_VTENTRY: howto manager. (line 1833) 12957* BFD_RELOC_MEP_GNU_VTINHERIT: howto manager. (line 1832) 12958* BFD_RELOC_MEP_GPREL: howto manager. (line 1825) 12959* BFD_RELOC_MEP_HI16S: howto manager. (line 1824) 12960* BFD_RELOC_MEP_HI16U: howto manager. (line 1823) 12961* BFD_RELOC_MEP_LOW16: howto manager. (line 1822) 12962* BFD_RELOC_MEP_PCABS24A2: howto manager. (line 1821) 12963* BFD_RELOC_MEP_PCREL12A2: howto manager. (line 1818) 12964* BFD_RELOC_MEP_PCREL17A2: howto manager. (line 1819) 12965* BFD_RELOC_MEP_PCREL24A2: howto manager. (line 1820) 12966* BFD_RELOC_MEP_PCREL8A2: howto manager. (line 1817) 12967* BFD_RELOC_MEP_TPREL: howto manager. (line 1826) 12968* BFD_RELOC_MEP_TPREL7: howto manager. (line 1827) 12969* BFD_RELOC_MEP_TPREL7A2: howto manager. (line 1828) 12970* BFD_RELOC_MEP_TPREL7A4: howto manager. (line 1829) 12971* BFD_RELOC_MEP_UIMM24: howto manager. (line 1830) 12972* BFD_RELOC_METAG_COPY: howto manager. (line 1855) 12973* BFD_RELOC_METAG_GETSET_GOT: howto manager. (line 1847) 12974* BFD_RELOC_METAG_GETSET_GOTOFF: howto manager. (line 1846) 12975* BFD_RELOC_METAG_GETSETOFF: howto manager. (line 1839) 12976* BFD_RELOC_METAG_GLOB_DAT: howto manager. (line 1858) 12977* BFD_RELOC_METAG_GOTOFF: howto manager. (line 1853) 12978* BFD_RELOC_METAG_HI16_GOTOFF: howto manager. (line 1844) 12979* BFD_RELOC_METAG_HI16_GOTPC: howto manager. (line 1848) 12980* BFD_RELOC_METAG_HI16_PLT: howto manager. (line 1850) 12981* BFD_RELOC_METAG_HIADDR16: howto manager. (line 1836) 12982* BFD_RELOC_METAG_HIOG: howto manager. (line 1840) 12983* BFD_RELOC_METAG_JMP_SLOT: howto manager. (line 1856) 12984* BFD_RELOC_METAG_LO16_GOTOFF: howto manager. (line 1845) 12985* BFD_RELOC_METAG_LO16_GOTPC: howto manager. (line 1849) 12986* BFD_RELOC_METAG_LO16_PLT: howto manager. (line 1851) 12987* BFD_RELOC_METAG_LOADDR16: howto manager. (line 1837) 12988* BFD_RELOC_METAG_LOOG: howto manager. (line 1841) 12989* BFD_RELOC_METAG_PLT: howto manager. (line 1854) 12990* BFD_RELOC_METAG_REL16: howto manager. (line 1843) 12991* BFD_RELOC_METAG_REL8: howto manager. (line 1842) 12992* BFD_RELOC_METAG_RELATIVE: howto manager. (line 1857) 12993* BFD_RELOC_METAG_RELBRANCH: howto manager. (line 1838) 12994* BFD_RELOC_METAG_RELBRANCH_PLT: howto manager. (line 1852) 12995* BFD_RELOC_METAG_TLS_DTPMOD: howto manager. (line 1869) 12996* BFD_RELOC_METAG_TLS_DTPOFF: howto manager. (line 1870) 12997* BFD_RELOC_METAG_TLS_GD: howto manager. (line 1859) 12998* BFD_RELOC_METAG_TLS_IE: howto manager. (line 1864) 12999* BFD_RELOC_METAG_TLS_IENONPIC: howto manager. (line 1865) 13000* BFD_RELOC_METAG_TLS_IENONPIC_HI16: howto manager. (line 1866) 13001* BFD_RELOC_METAG_TLS_IENONPIC_LO16: howto manager. (line 1867) 13002* BFD_RELOC_METAG_TLS_LDM: howto manager. (line 1860) 13003* BFD_RELOC_METAG_TLS_LDO: howto manager. (line 1863) 13004* BFD_RELOC_METAG_TLS_LDO_HI16: howto manager. (line 1861) 13005* BFD_RELOC_METAG_TLS_LDO_LO16: howto manager. (line 1862) 13006* BFD_RELOC_METAG_TLS_LE: howto manager. (line 1871) 13007* BFD_RELOC_METAG_TLS_LE_HI16: howto manager. (line 1872) 13008* BFD_RELOC_METAG_TLS_LE_LO16: howto manager. (line 1873) 13009* BFD_RELOC_METAG_TLS_TPOFF: howto manager. (line 1868) 13010* BFD_RELOC_MICROBLAZE_32_GOTOFF: howto manager. (line 3066) 13011* BFD_RELOC_MICROBLAZE_32_LO: howto manager. (line 3022) 13012* BFD_RELOC_MICROBLAZE_32_LO_PCREL: howto manager. (line 3026) 13013* BFD_RELOC_MICROBLAZE_32_ROSDA: howto manager. (line 3030) 13014* BFD_RELOC_MICROBLAZE_32_RWSDA: howto manager. (line 3034) 13015* BFD_RELOC_MICROBLAZE_32_SYM_OP_SYM: howto manager. (line 3038) 13016* BFD_RELOC_MICROBLAZE_32_TLSDTPMOD: howto manager. (line 3087) 13017* BFD_RELOC_MICROBLAZE_32_TLSDTPREL: howto manager. (line 3090) 13018* BFD_RELOC_MICROBLAZE_64_GOT: howto manager. (line 3052) 13019* BFD_RELOC_MICROBLAZE_64_GOTOFF: howto manager. (line 3061) 13020* BFD_RELOC_MICROBLAZE_64_GOTPC: howto manager. (line 3047) 13021* BFD_RELOC_MICROBLAZE_64_NONE: howto manager. (line 3042) 13022* BFD_RELOC_MICROBLAZE_64_PLT: howto manager. (line 3056) 13023* BFD_RELOC_MICROBLAZE_64_TLS: howto manager. (line 3074) 13024* BFD_RELOC_MICROBLAZE_64_TLSDTPREL: howto manager. (line 3093) 13025* BFD_RELOC_MICROBLAZE_64_TLSGD: howto manager. (line 3077) 13026* BFD_RELOC_MICROBLAZE_64_TLSGOTTPREL: howto manager. (line 3097) 13027* BFD_RELOC_MICROBLAZE_64_TLSLD: howto manager. (line 3082) 13028* BFD_RELOC_MICROBLAZE_64_TLSTPREL: howto manager. (line 3101) 13029* BFD_RELOC_MICROBLAZE_COPY: howto manager. (line 3070) 13030* BFD_RELOC_MICROMIPS_10_PCREL_S1: howto manager. (line 404) 13031* BFD_RELOC_MICROMIPS_16_PCREL_S1: howto manager. (line 405) 13032* BFD_RELOC_MICROMIPS_7_PCREL_S1: howto manager. (line 403) 13033* BFD_RELOC_MICROMIPS_CALL16: howto manager. (line 426) 13034* BFD_RELOC_MICROMIPS_CALL_HI16: howto manager. (line 432) 13035* BFD_RELOC_MICROMIPS_CALL_LO16: howto manager. (line 434) 13036* BFD_RELOC_MICROMIPS_GOT16: howto manager. (line 424) 13037* BFD_RELOC_MICROMIPS_GOT_DISP: howto manager. (line 442) 13038* BFD_RELOC_MICROMIPS_GOT_HI16: howto manager. (line 428) 13039* BFD_RELOC_MICROMIPS_GOT_LO16: howto manager. (line 430) 13040* BFD_RELOC_MICROMIPS_GOT_OFST: howto manager. (line 440) 13041* BFD_RELOC_MICROMIPS_GOT_PAGE: howto manager. (line 438) 13042* BFD_RELOC_MICROMIPS_GPREL16: howto manager. (line 417) 13043* BFD_RELOC_MICROMIPS_HI16: howto manager. (line 418) 13044* BFD_RELOC_MICROMIPS_HI16_S: howto manager. (line 419) 13045* BFD_RELOC_MICROMIPS_HIGHER: howto manager. (line 451) 13046* BFD_RELOC_MICROMIPS_HIGHEST: howto manager. (line 449) 13047* BFD_RELOC_MICROMIPS_JALR: howto manager. (line 457) 13048* BFD_RELOC_MICROMIPS_JMP: howto manager. (line 343) 13049* BFD_RELOC_MICROMIPS_LITERAL: howto manager. (line 400) 13050* BFD_RELOC_MICROMIPS_LO16: howto manager. (line 420) 13051* BFD_RELOC_MICROMIPS_SCN_DISP: howto manager. (line 453) 13052* BFD_RELOC_MICROMIPS_SUB: howto manager. (line 436) 13053* BFD_RELOC_MICROMIPS_TLS_DTPREL_HI16: howto manager. (line 467) 13054* BFD_RELOC_MICROMIPS_TLS_DTPREL_LO16: howto manager. (line 469) 13055* BFD_RELOC_MICROMIPS_TLS_GD: howto manager. (line 463) 13056* BFD_RELOC_MICROMIPS_TLS_GOTTPREL: howto manager. (line 471) 13057* BFD_RELOC_MICROMIPS_TLS_LDM: howto manager. (line 465) 13058* BFD_RELOC_MICROMIPS_TLS_TPREL_HI16: howto manager. (line 475) 13059* BFD_RELOC_MICROMIPS_TLS_TPREL_LO16: howto manager. (line 477) 13060* BFD_RELOC_MIPS16_16_PCREL_S1: howto manager. (line 408) 13061* BFD_RELOC_MIPS16_CALL16: howto manager. (line 374) 13062* BFD_RELOC_MIPS16_GOT16: howto manager. (line 373) 13063* BFD_RELOC_MIPS16_GPREL: howto manager. (line 349) 13064* BFD_RELOC_MIPS16_HI16: howto manager. (line 378) 13065* BFD_RELOC_MIPS16_HI16_S: howto manager. (line 381) 13066* BFD_RELOC_MIPS16_JMP: howto manager. (line 346) 13067* BFD_RELOC_MIPS16_LO16: howto manager. (line 387) 13068* BFD_RELOC_MIPS16_TLS_DTPREL_HI16: howto manager. (line 392) 13069* BFD_RELOC_MIPS16_TLS_DTPREL_LO16: howto manager. (line 393) 13070* BFD_RELOC_MIPS16_TLS_GD: howto manager. (line 390) 13071* BFD_RELOC_MIPS16_TLS_GOTTPREL: howto manager. (line 394) 13072* BFD_RELOC_MIPS16_TLS_LDM: howto manager. (line 391) 13073* BFD_RELOC_MIPS16_TLS_TPREL_HI16: howto manager. (line 395) 13074* BFD_RELOC_MIPS16_TLS_TPREL_LO16: howto manager. (line 396) 13075* BFD_RELOC_MIPS_18_PCREL_S3: howto manager. (line 413) 13076* BFD_RELOC_MIPS_19_PCREL_S2: howto manager. (line 414) 13077* BFD_RELOC_MIPS_21_PCREL_S2: howto manager. (line 411) 13078* BFD_RELOC_MIPS_26_PCREL_S2: howto manager. (line 412) 13079* BFD_RELOC_MIPS_CALL16: howto manager. (line 425) 13080* BFD_RELOC_MIPS_CALL_HI16: howto manager. (line 431) 13081* BFD_RELOC_MIPS_CALL_LO16: howto manager. (line 433) 13082* BFD_RELOC_MIPS_COPY: howto manager. (line 481) 13083* BFD_RELOC_MIPS_DELETE: howto manager. (line 447) 13084* BFD_RELOC_MIPS_EH: howto manager. (line 478) 13085* BFD_RELOC_MIPS_GOT16: howto manager. (line 423) 13086* BFD_RELOC_MIPS_GOT_DISP: howto manager. (line 441) 13087* BFD_RELOC_MIPS_GOT_HI16: howto manager. (line 427) 13088* BFD_RELOC_MIPS_GOT_LO16: howto manager. (line 429) 13089* BFD_RELOC_MIPS_GOT_OFST: howto manager. (line 439) 13090* BFD_RELOC_MIPS_GOT_PAGE: howto manager. (line 437) 13091* BFD_RELOC_MIPS_HIGHER: howto manager. (line 450) 13092* BFD_RELOC_MIPS_HIGHEST: howto manager. (line 448) 13093* BFD_RELOC_MIPS_INSERT_A: howto manager. (line 445) 13094* BFD_RELOC_MIPS_INSERT_B: howto manager. (line 446) 13095* BFD_RELOC_MIPS_JALR: howto manager. (line 456) 13096* BFD_RELOC_MIPS_JMP: howto manager. (line 342) 13097* BFD_RELOC_MIPS_JUMP_SLOT: howto manager. (line 482) 13098* BFD_RELOC_MIPS_LITERAL: howto manager. (line 399) 13099* BFD_RELOC_MIPS_REL16: howto manager. (line 454) 13100* BFD_RELOC_MIPS_RELGOT: howto manager. (line 455) 13101* BFD_RELOC_MIPS_SCN_DISP: howto manager. (line 452) 13102* BFD_RELOC_MIPS_SHIFT5: howto manager. (line 443) 13103* BFD_RELOC_MIPS_SHIFT6: howto manager. (line 444) 13104* BFD_RELOC_MIPS_SUB: howto manager. (line 435) 13105* BFD_RELOC_MIPS_TLS_DTPMOD32: howto manager. (line 458) 13106* BFD_RELOC_MIPS_TLS_DTPMOD64: howto manager. (line 460) 13107* BFD_RELOC_MIPS_TLS_DTPREL32: howto manager. (line 459) 13108* BFD_RELOC_MIPS_TLS_DTPREL64: howto manager. (line 461) 13109* BFD_RELOC_MIPS_TLS_DTPREL_HI16: howto manager. (line 466) 13110* BFD_RELOC_MIPS_TLS_DTPREL_LO16: howto manager. (line 468) 13111* BFD_RELOC_MIPS_TLS_GD: howto manager. (line 462) 13112* BFD_RELOC_MIPS_TLS_GOTTPREL: howto manager. (line 470) 13113* BFD_RELOC_MIPS_TLS_LDM: howto manager. (line 464) 13114* BFD_RELOC_MIPS_TLS_TPREL32: howto manager. (line 472) 13115* BFD_RELOC_MIPS_TLS_TPREL64: howto manager. (line 473) 13116* BFD_RELOC_MIPS_TLS_TPREL_HI16: howto manager. (line 474) 13117* BFD_RELOC_MIPS_TLS_TPREL_LO16: howto manager. (line 476) 13118* BFD_RELOC_MMIX_ADDR19: howto manager. (line 1902) 13119* BFD_RELOC_MMIX_ADDR27: howto manager. (line 1906) 13120* BFD_RELOC_MMIX_BASE_PLUS_OFFSET: howto manager. (line 1918) 13121* BFD_RELOC_MMIX_CBRANCH: howto manager. (line 1882) 13122* BFD_RELOC_MMIX_CBRANCH_1: howto manager. (line 1884) 13123* BFD_RELOC_MMIX_CBRANCH_2: howto manager. (line 1885) 13124* BFD_RELOC_MMIX_CBRANCH_3: howto manager. (line 1886) 13125* BFD_RELOC_MMIX_CBRANCH_J: howto manager. (line 1883) 13126* BFD_RELOC_MMIX_GETA: howto manager. (line 1876) 13127* BFD_RELOC_MMIX_GETA_1: howto manager. (line 1877) 13128* BFD_RELOC_MMIX_GETA_2: howto manager. (line 1878) 13129* BFD_RELOC_MMIX_GETA_3: howto manager. (line 1879) 13130* BFD_RELOC_MMIX_JMP: howto manager. (line 1896) 13131* BFD_RELOC_MMIX_JMP_1: howto manager. (line 1897) 13132* BFD_RELOC_MMIX_JMP_2: howto manager. (line 1898) 13133* BFD_RELOC_MMIX_JMP_3: howto manager. (line 1899) 13134* BFD_RELOC_MMIX_LOCAL: howto manager. (line 1922) 13135* BFD_RELOC_MMIX_PUSHJ: howto manager. (line 1889) 13136* BFD_RELOC_MMIX_PUSHJ_1: howto manager. (line 1890) 13137* BFD_RELOC_MMIX_PUSHJ_2: howto manager. (line 1891) 13138* BFD_RELOC_MMIX_PUSHJ_3: howto manager. (line 1892) 13139* BFD_RELOC_MMIX_PUSHJ_STUBBABLE: howto manager. (line 1893) 13140* BFD_RELOC_MMIX_REG: howto manager. (line 1914) 13141* BFD_RELOC_MMIX_REG_OR_BYTE: howto manager. (line 1910) 13142* BFD_RELOC_MN10300_16_PCREL: howto manager. (line 586) 13143* BFD_RELOC_MN10300_32_PCREL: howto manager. (line 582) 13144* BFD_RELOC_MN10300_ALIGN: howto manager. (line 567) 13145* BFD_RELOC_MN10300_COPY: howto manager. (line 550) 13146* BFD_RELOC_MN10300_GLOB_DAT: howto manager. (line 553) 13147* BFD_RELOC_MN10300_GOT16: howto manager. (line 546) 13148* BFD_RELOC_MN10300_GOT24: howto manager. (line 542) 13149* BFD_RELOC_MN10300_GOT32: howto manager. (line 538) 13150* BFD_RELOC_MN10300_GOTOFF24: howto manager. (line 535) 13151* BFD_RELOC_MN10300_JMP_SLOT: howto manager. (line 556) 13152* BFD_RELOC_MN10300_RELATIVE: howto manager. (line 559) 13153* BFD_RELOC_MN10300_SYM_DIFF: howto manager. (line 562) 13154* BFD_RELOC_MN10300_TLS_DTPMOD: howto manager. (line 577) 13155* BFD_RELOC_MN10300_TLS_DTPOFF: howto manager. (line 578) 13156* BFD_RELOC_MN10300_TLS_GD: howto manager. (line 571) 13157* BFD_RELOC_MN10300_TLS_GOTIE: howto manager. (line 574) 13158* BFD_RELOC_MN10300_TLS_IE: howto manager. (line 575) 13159* BFD_RELOC_MN10300_TLS_LD: howto manager. (line 572) 13160* BFD_RELOC_MN10300_TLS_LDO: howto manager. (line 573) 13161* BFD_RELOC_MN10300_TLS_LE: howto manager. (line 576) 13162* BFD_RELOC_MN10300_TLS_TPOFF: howto manager. (line 579) 13163* BFD_RELOC_MOXIE_10_PCREL: howto manager. (line 485) 13164* BFD_RELOC_MSP430_10_PCREL: howto manager. (line 2779) 13165* BFD_RELOC_MSP430_16: howto manager. (line 2781) 13166* BFD_RELOC_MSP430_16_BYTE: howto manager. (line 2783) 13167* BFD_RELOC_MSP430_16_PCREL: howto manager. (line 2780) 13168* BFD_RELOC_MSP430_16_PCREL_BYTE: howto manager. (line 2782) 13169* BFD_RELOC_MSP430_2X_PCREL: howto manager. (line 2784) 13170* BFD_RELOC_MSP430_ABS8: howto manager. (line 2786) 13171* BFD_RELOC_MSP430_ABS_HI16: howto manager. (line 2798) 13172* BFD_RELOC_MSP430_PREL31: howto manager. (line 2799) 13173* BFD_RELOC_MSP430_RL_PCREL: howto manager. (line 2785) 13174* BFD_RELOC_MSP430_SYM_DIFF: howto manager. (line 2800) 13175* BFD_RELOC_MSP430X_ABS16: howto manager. (line 2797) 13176* BFD_RELOC_MSP430X_ABS20_ADR_DST: howto manager. (line 2794) 13177* BFD_RELOC_MSP430X_ABS20_ADR_SRC: howto manager. (line 2793) 13178* BFD_RELOC_MSP430X_ABS20_EXT_DST: howto manager. (line 2791) 13179* BFD_RELOC_MSP430X_ABS20_EXT_ODST: howto manager. (line 2792) 13180* BFD_RELOC_MSP430X_ABS20_EXT_SRC: howto manager. (line 2790) 13181* BFD_RELOC_MSP430X_PCR16: howto manager. (line 2795) 13182* BFD_RELOC_MSP430X_PCR20_CALL: howto manager. (line 2796) 13183* BFD_RELOC_MSP430X_PCR20_EXT_DST: howto manager. (line 2788) 13184* BFD_RELOC_MSP430X_PCR20_EXT_ODST: howto manager. (line 2789) 13185* BFD_RELOC_MSP430X_PCR20_EXT_SRC: howto manager. (line 2787) 13186* BFD_RELOC_MT_GNU_VTENTRY: howto manager. (line 2773) 13187* BFD_RELOC_MT_GNU_VTINHERIT: howto manager. (line 2770) 13188* BFD_RELOC_MT_HI16: howto manager. (line 2764) 13189* BFD_RELOC_MT_LO16: howto manager. (line 2767) 13190* BFD_RELOC_MT_PC16: howto manager. (line 2761) 13191* BFD_RELOC_MT_PCINSN8: howto manager. (line 2776) 13192* BFD_RELOC_NDS32_10_UPCREL: howto manager. (line 1531) 13193* BFD_RELOC_NDS32_10IFCU_PCREL: howto manager. (line 1564) 13194* BFD_RELOC_NDS32_15_FIXED: howto manager. (line 1485) 13195* BFD_RELOC_NDS32_15_PCREL: howto manager. (line 1393) 13196* BFD_RELOC_NDS32_17_FIXED: howto manager. (line 1486) 13197* BFD_RELOC_NDS32_17_PCREL: howto manager. (line 1396) 13198* BFD_RELOC_NDS32_17IFC_PCREL: howto manager. (line 1563) 13199* BFD_RELOC_NDS32_20: howto manager. (line 1382) 13200* BFD_RELOC_NDS32_25_ABS: howto manager. (line 1558) 13201* BFD_RELOC_NDS32_25_FIXED: howto manager. (line 1487) 13202* BFD_RELOC_NDS32_25_PCREL: howto manager. (line 1399) 13203* BFD_RELOC_NDS32_25_PLTREL: howto manager. (line 1460) 13204* BFD_RELOC_NDS32_5: howto manager. (line 1528) 13205* BFD_RELOC_NDS32_9_FIXED: howto manager. (line 1484) 13206* BFD_RELOC_NDS32_9_PCREL: howto manager. (line 1385) 13207* BFD_RELOC_NDS32_9_PLTREL: howto manager. (line 1459) 13208* BFD_RELOC_NDS32_COPY: howto manager. (line 1461) 13209* BFD_RELOC_NDS32_DATA: howto manager. (line 1561) 13210* BFD_RELOC_NDS32_DIFF16: howto manager. (line 1552) 13211* BFD_RELOC_NDS32_DIFF32: howto manager. (line 1553) 13212* BFD_RELOC_NDS32_DIFF8: howto manager. (line 1551) 13213* BFD_RELOC_NDS32_DIFF_ULEB128: howto manager. (line 1554) 13214* BFD_RELOC_NDS32_DWARF2_LEB: howto manager. (line 1511) 13215* BFD_RELOC_NDS32_DWARF2_OP1: howto manager. (line 1509) 13216* BFD_RELOC_NDS32_DWARF2_OP2: howto manager. (line 1510) 13217* BFD_RELOC_NDS32_EMPTY: howto manager. (line 1555) 13218* BFD_RELOC_NDS32_GLOB_DAT: howto manager. (line 1462) 13219* BFD_RELOC_NDS32_GOT15S2: howto manager. (line 1524) 13220* BFD_RELOC_NDS32_GOT17S2: howto manager. (line 1525) 13221* BFD_RELOC_NDS32_GOT20: howto manager. (line 1458) 13222* BFD_RELOC_NDS32_GOT_HI20: howto manager. (line 1469) 13223* BFD_RELOC_NDS32_GOT_LO12: howto manager. (line 1470) 13224* BFD_RELOC_NDS32_GOT_LO15: howto manager. (line 1520) 13225* BFD_RELOC_NDS32_GOT_LO19: howto manager. (line 1521) 13226* BFD_RELOC_NDS32_GOT_SUFF: howto manager. (line 1539) 13227* BFD_RELOC_NDS32_GOTOFF: howto manager. (line 1465) 13228* BFD_RELOC_NDS32_GOTOFF_HI20: howto manager. (line 1466) 13229* BFD_RELOC_NDS32_GOTOFF_LO12: howto manager. (line 1467) 13230* BFD_RELOC_NDS32_GOTOFF_LO15: howto manager. (line 1522) 13231* BFD_RELOC_NDS32_GOTOFF_LO19: howto manager. (line 1523) 13232* BFD_RELOC_NDS32_GOTOFF_SUFF: howto manager. (line 1540) 13233* BFD_RELOC_NDS32_GOTPC20: howto manager. (line 1468) 13234* BFD_RELOC_NDS32_GOTPC_HI20: howto manager. (line 1471) 13235* BFD_RELOC_NDS32_GOTPC_LO12: howto manager. (line 1472) 13236* BFD_RELOC_NDS32_GOTTPOFF: howto manager. (line 1572) 13237* BFD_RELOC_NDS32_HI20: howto manager. (line 1402) 13238* BFD_RELOC_NDS32_INSN16: howto manager. (line 1475) 13239* BFD_RELOC_NDS32_JMP_SLOT: howto manager. (line 1463) 13240* BFD_RELOC_NDS32_LABEL: howto manager. (line 1476) 13241* BFD_RELOC_NDS32_LO12S0: howto manager. (line 1418) 13242* BFD_RELOC_NDS32_LO12S0_ORI: howto manager. (line 1422) 13243* BFD_RELOC_NDS32_LO12S1: howto manager. (line 1414) 13244* BFD_RELOC_NDS32_LO12S2: howto manager. (line 1410) 13245* BFD_RELOC_NDS32_LO12S2_DP: howto manager. (line 1505) 13246* BFD_RELOC_NDS32_LO12S2_SP: howto manager. (line 1506) 13247* BFD_RELOC_NDS32_LO12S3: howto manager. (line 1406) 13248* BFD_RELOC_NDS32_LOADSTORE: howto manager. (line 1483) 13249* BFD_RELOC_NDS32_LONGCALL1: howto manager. (line 1477) 13250* BFD_RELOC_NDS32_LONGCALL2: howto manager. (line 1478) 13251* BFD_RELOC_NDS32_LONGCALL3: howto manager. (line 1479) 13252* BFD_RELOC_NDS32_LONGCALL4: howto manager. (line 1488) 13253* BFD_RELOC_NDS32_LONGCALL5: howto manager. (line 1489) 13254* BFD_RELOC_NDS32_LONGCALL6: howto manager. (line 1490) 13255* BFD_RELOC_NDS32_LONGJUMP1: howto manager. (line 1480) 13256* BFD_RELOC_NDS32_LONGJUMP2: howto manager. (line 1481) 13257* BFD_RELOC_NDS32_LONGJUMP3: howto manager. (line 1482) 13258* BFD_RELOC_NDS32_LONGJUMP4: howto manager. (line 1491) 13259* BFD_RELOC_NDS32_LONGJUMP5: howto manager. (line 1492) 13260* BFD_RELOC_NDS32_LONGJUMP6: howto manager. (line 1493) 13261* BFD_RELOC_NDS32_LONGJUMP7: howto manager. (line 1494) 13262* BFD_RELOC_NDS32_MINUEND: howto manager. (line 1549) 13263* BFD_RELOC_NDS32_MULCALL_SUFF: howto manager. (line 1542) 13264* BFD_RELOC_NDS32_PLT_GOT_SUFF: howto manager. (line 1541) 13265* BFD_RELOC_NDS32_PLT_GOTREL_HI20: howto manager. (line 1499) 13266* BFD_RELOC_NDS32_PLT_GOTREL_LO12: howto manager. (line 1500) 13267* BFD_RELOC_NDS32_PLT_GOTREL_LO15: howto manager. (line 1518) 13268* BFD_RELOC_NDS32_PLT_GOTREL_LO19: howto manager. (line 1519) 13269* BFD_RELOC_NDS32_PLT_GOTREL_LO20: howto manager. (line 1517) 13270* BFD_RELOC_NDS32_PLTBLOCK: howto manager. (line 1546) 13271* BFD_RELOC_NDS32_PLTREL_HI20: howto manager. (line 1497) 13272* BFD_RELOC_NDS32_PLTREL_LO12: howto manager. (line 1498) 13273* BFD_RELOC_NDS32_PTR: howto manager. (line 1543) 13274* BFD_RELOC_NDS32_PTR_COUNT: howto manager. (line 1544) 13275* BFD_RELOC_NDS32_PTR_RESOLVED: howto manager. (line 1545) 13276* BFD_RELOC_NDS32_RELATIVE: howto manager. (line 1464) 13277* BFD_RELOC_NDS32_RELAX_ENTRY: howto manager. (line 1538) 13278* BFD_RELOC_NDS32_RELAX_REGION_BEGIN: howto manager. (line 1547) 13279* BFD_RELOC_NDS32_RELAX_REGION_END: howto manager. (line 1548) 13280* BFD_RELOC_NDS32_SDA12S2_DP: howto manager. (line 1503) 13281* BFD_RELOC_NDS32_SDA12S2_SP: howto manager. (line 1504) 13282* BFD_RELOC_NDS32_SDA15S0: howto manager. (line 1438) 13283* BFD_RELOC_NDS32_SDA15S1: howto manager. (line 1434) 13284* BFD_RELOC_NDS32_SDA15S2: howto manager. (line 1430) 13285* BFD_RELOC_NDS32_SDA15S3: howto manager. (line 1426) 13286* BFD_RELOC_NDS32_SDA16S3: howto manager. (line 1442) 13287* BFD_RELOC_NDS32_SDA17S2: howto manager. (line 1446) 13288* BFD_RELOC_NDS32_SDA18S1: howto manager. (line 1450) 13289* BFD_RELOC_NDS32_SDA19S0: howto manager. (line 1454) 13290* BFD_RELOC_NDS32_SDA_FP7U2_RELA: howto manager. (line 1535) 13291* BFD_RELOC_NDS32_SUBTRAHEND: howto manager. (line 1550) 13292* BFD_RELOC_NDS32_TLS_IE_HI20: howto manager. (line 1573) 13293* BFD_RELOC_NDS32_TLS_IE_LO12S2: howto manager. (line 1574) 13294* BFD_RELOC_NDS32_TLS_LE_15S0: howto manager. (line 1577) 13295* BFD_RELOC_NDS32_TLS_LE_15S1: howto manager. (line 1578) 13296* BFD_RELOC_NDS32_TLS_LE_15S2: howto manager. (line 1579) 13297* BFD_RELOC_NDS32_TLS_LE_20: howto manager. (line 1576) 13298* BFD_RELOC_NDS32_TLS_LE_ADD: howto manager. (line 1570) 13299* BFD_RELOC_NDS32_TLS_LE_HI20: howto manager. (line 1568) 13300* BFD_RELOC_NDS32_TLS_LE_LO12: howto manager. (line 1569) 13301* BFD_RELOC_NDS32_TLS_LE_LS: howto manager. (line 1571) 13302* BFD_RELOC_NDS32_TLS_TPOFF: howto manager. (line 1575) 13303* BFD_RELOC_NDS32_TPOFF: howto manager. (line 1567) 13304* BFD_RELOC_NDS32_TRAN: howto manager. (line 1562) 13305* BFD_RELOC_NDS32_UPDATE_TA: howto manager. (line 1514) 13306* BFD_RELOC_NDS32_WORD_9_PCREL: howto manager. (line 1389) 13307* BFD_RELOC_NIOS2_ALIGN: howto manager. (line 2817) 13308* BFD_RELOC_NIOS2_CACHE_OPX: howto manager. (line 2807) 13309* BFD_RELOC_NIOS2_CALL16: howto manager. (line 2819) 13310* BFD_RELOC_NIOS2_CALL26: howto manager. (line 2805) 13311* BFD_RELOC_NIOS2_CALL26_NOAT: howto manager. (line 2837) 13312* BFD_RELOC_NIOS2_CALL_HA: howto manager. (line 2841) 13313* BFD_RELOC_NIOS2_CALL_LO: howto manager. (line 2840) 13314* BFD_RELOC_NIOS2_CALLR: howto manager. (line 2816) 13315* BFD_RELOC_NIOS2_CJMP: howto manager. (line 2815) 13316* BFD_RELOC_NIOS2_COPY: howto manager. (line 2832) 13317* BFD_RELOC_NIOS2_GLOB_DAT: howto manager. (line 2833) 13318* BFD_RELOC_NIOS2_GOT16: howto manager. (line 2818) 13319* BFD_RELOC_NIOS2_GOT_HA: howto manager. (line 2839) 13320* BFD_RELOC_NIOS2_GOT_LO: howto manager. (line 2838) 13321* BFD_RELOC_NIOS2_GOTOFF: howto manager. (line 2836) 13322* BFD_RELOC_NIOS2_GOTOFF_HA: howto manager. (line 2821) 13323* BFD_RELOC_NIOS2_GOTOFF_LO: howto manager. (line 2820) 13324* BFD_RELOC_NIOS2_GPREL: howto manager. (line 2813) 13325* BFD_RELOC_NIOS2_HI16: howto manager. (line 2810) 13326* BFD_RELOC_NIOS2_HIADJ16: howto manager. (line 2812) 13327* BFD_RELOC_NIOS2_IMM5: howto manager. (line 2806) 13328* BFD_RELOC_NIOS2_IMM6: howto manager. (line 2808) 13329* BFD_RELOC_NIOS2_IMM8: howto manager. (line 2809) 13330* BFD_RELOC_NIOS2_JUMP_SLOT: howto manager. (line 2834) 13331* BFD_RELOC_NIOS2_LO16: howto manager. (line 2811) 13332* BFD_RELOC_NIOS2_PCREL_HA: howto manager. (line 2823) 13333* BFD_RELOC_NIOS2_PCREL_LO: howto manager. (line 2822) 13334* BFD_RELOC_NIOS2_R2_F1I5_2: howto manager. (line 2851) 13335* BFD_RELOC_NIOS2_R2_I10_1_PCREL: howto manager. (line 2843) 13336* BFD_RELOC_NIOS2_R2_L5I4X1: howto manager. (line 2852) 13337* BFD_RELOC_NIOS2_R2_S12: howto manager. (line 2842) 13338* BFD_RELOC_NIOS2_R2_T1I7_1_PCREL: howto manager. (line 2844) 13339* BFD_RELOC_NIOS2_R2_T1I7_2: howto manager. (line 2845) 13340* BFD_RELOC_NIOS2_R2_T1X1I6: howto manager. (line 2853) 13341* BFD_RELOC_NIOS2_R2_T1X1I6_2: howto manager. (line 2854) 13342* BFD_RELOC_NIOS2_R2_T2I4: howto manager. (line 2846) 13343* BFD_RELOC_NIOS2_R2_T2I4_1: howto manager. (line 2847) 13344* BFD_RELOC_NIOS2_R2_T2I4_2: howto manager. (line 2848) 13345* BFD_RELOC_NIOS2_R2_X1I7_2: howto manager. (line 2849) 13346* BFD_RELOC_NIOS2_R2_X2L5: howto manager. (line 2850) 13347* BFD_RELOC_NIOS2_RELATIVE: howto manager. (line 2835) 13348* BFD_RELOC_NIOS2_S16: howto manager. (line 2803) 13349* BFD_RELOC_NIOS2_TLS_DTPMOD: howto manager. (line 2829) 13350* BFD_RELOC_NIOS2_TLS_DTPREL: howto manager. (line 2830) 13351* BFD_RELOC_NIOS2_TLS_GD16: howto manager. (line 2824) 13352* BFD_RELOC_NIOS2_TLS_IE16: howto manager. (line 2827) 13353* BFD_RELOC_NIOS2_TLS_LDM16: howto manager. (line 2825) 13354* BFD_RELOC_NIOS2_TLS_LDO16: howto manager. (line 2826) 13355* BFD_RELOC_NIOS2_TLS_LE16: howto manager. (line 2828) 13356* BFD_RELOC_NIOS2_TLS_TPREL: howto manager. (line 2831) 13357* BFD_RELOC_NIOS2_U16: howto manager. (line 2804) 13358* BFD_RELOC_NIOS2_UJMP: howto manager. (line 2814) 13359* BFD_RELOC_NONE: howto manager. (line 135) 13360* BFD_RELOC_NS32K_DISP_16: howto manager. (line 657) 13361* BFD_RELOC_NS32K_DISP_16_PCREL: howto manager. (line 660) 13362* BFD_RELOC_NS32K_DISP_32: howto manager. (line 658) 13363* BFD_RELOC_NS32K_DISP_32_PCREL: howto manager. (line 661) 13364* BFD_RELOC_NS32K_DISP_8: howto manager. (line 656) 13365* BFD_RELOC_NS32K_DISP_8_PCREL: howto manager. (line 659) 13366* BFD_RELOC_NS32K_IMM_16: howto manager. (line 651) 13367* BFD_RELOC_NS32K_IMM_16_PCREL: howto manager. (line 654) 13368* BFD_RELOC_NS32K_IMM_32: howto manager. (line 652) 13369* BFD_RELOC_NS32K_IMM_32_PCREL: howto manager. (line 655) 13370* BFD_RELOC_NS32K_IMM_8: howto manager. (line 650) 13371* BFD_RELOC_NS32K_IMM_8_PCREL: howto manager. (line 653) 13372* BFD_RELOC_OR1K_COPY: howto manager. (line 2714) 13373* BFD_RELOC_OR1K_GLOB_DAT: howto manager. (line 2715) 13374* BFD_RELOC_OR1K_GOT16: howto manager. (line 2710) 13375* BFD_RELOC_OR1K_GOTOFF_HI16: howto manager. (line 2712) 13376* BFD_RELOC_OR1K_GOTOFF_LO16: howto manager. (line 2713) 13377* BFD_RELOC_OR1K_GOTPC_HI16: howto manager. (line 2708) 13378* BFD_RELOC_OR1K_GOTPC_LO16: howto manager. (line 2709) 13379* BFD_RELOC_OR1K_JMP_SLOT: howto manager. (line 2716) 13380* BFD_RELOC_OR1K_PLT26: howto manager. (line 2711) 13381* BFD_RELOC_OR1K_REL_26: howto manager. (line 2707) 13382* BFD_RELOC_OR1K_RELATIVE: howto manager. (line 2717) 13383* BFD_RELOC_OR1K_TLS_DTPMOD: howto manager. (line 2730) 13384* BFD_RELOC_OR1K_TLS_DTPOFF: howto manager. (line 2729) 13385* BFD_RELOC_OR1K_TLS_GD_HI16: howto manager. (line 2718) 13386* BFD_RELOC_OR1K_TLS_GD_LO16: howto manager. (line 2719) 13387* BFD_RELOC_OR1K_TLS_IE_HI16: howto manager. (line 2724) 13388* BFD_RELOC_OR1K_TLS_IE_LO16: howto manager. (line 2725) 13389* BFD_RELOC_OR1K_TLS_LDM_HI16: howto manager. (line 2720) 13390* BFD_RELOC_OR1K_TLS_LDM_LO16: howto manager. (line 2721) 13391* BFD_RELOC_OR1K_TLS_LDO_HI16: howto manager. (line 2722) 13392* BFD_RELOC_OR1K_TLS_LDO_LO16: howto manager. (line 2723) 13393* BFD_RELOC_OR1K_TLS_LE_HI16: howto manager. (line 2726) 13394* BFD_RELOC_OR1K_TLS_LE_LO16: howto manager. (line 2727) 13395* BFD_RELOC_OR1K_TLS_TPOFF: howto manager. (line 2728) 13396* BFD_RELOC_PDP11_DISP_6_PCREL: howto manager. (line 665) 13397* BFD_RELOC_PDP11_DISP_8_PCREL: howto manager. (line 664) 13398* BFD_RELOC_PJ_CODE_DIR16: howto manager. (line 670) 13399* BFD_RELOC_PJ_CODE_DIR32: howto manager. (line 671) 13400* BFD_RELOC_PJ_CODE_HI16: howto manager. (line 668) 13401* BFD_RELOC_PJ_CODE_LO16: howto manager. (line 669) 13402* BFD_RELOC_PJ_CODE_REL16: howto manager. (line 672) 13403* BFD_RELOC_PJ_CODE_REL32: howto manager. (line 673) 13404* BFD_RELOC_PPC64_ADDR16_DS: howto manager. (line 736) 13405* BFD_RELOC_PPC64_ADDR16_HIGH: howto manager. (line 747) 13406* BFD_RELOC_PPC64_ADDR16_HIGHA: howto manager. (line 748) 13407* BFD_RELOC_PPC64_ADDR16_LO_DS: howto manager. (line 737) 13408* BFD_RELOC_PPC64_ADDR64_LOCAL: howto manager. (line 749) 13409* BFD_RELOC_PPC64_DTPREL16_DS: howto manager. (line 789) 13410* BFD_RELOC_PPC64_DTPREL16_HIGH: howto manager. (line 797) 13411* BFD_RELOC_PPC64_DTPREL16_HIGHA: howto manager. (line 798) 13412* BFD_RELOC_PPC64_DTPREL16_HIGHER: howto manager. (line 791) 13413* BFD_RELOC_PPC64_DTPREL16_HIGHERA: howto manager. (line 792) 13414* BFD_RELOC_PPC64_DTPREL16_HIGHEST: howto manager. (line 793) 13415* BFD_RELOC_PPC64_DTPREL16_HIGHESTA: howto manager. (line 794) 13416* BFD_RELOC_PPC64_DTPREL16_LO_DS: howto manager. (line 790) 13417* BFD_RELOC_PPC64_ENTRY: howto manager. (line 750) 13418* BFD_RELOC_PPC64_GOT16_DS: howto manager. (line 738) 13419* BFD_RELOC_PPC64_GOT16_LO_DS: howto manager. (line 739) 13420* BFD_RELOC_PPC64_HIGHER: howto manager. (line 724) 13421* BFD_RELOC_PPC64_HIGHER_S: howto manager. (line 725) 13422* BFD_RELOC_PPC64_HIGHEST: howto manager. (line 726) 13423* BFD_RELOC_PPC64_HIGHEST_S: howto manager. (line 727) 13424* BFD_RELOC_PPC64_PLT16_LO_DS: howto manager. (line 740) 13425* BFD_RELOC_PPC64_PLTGOT16: howto manager. (line 732) 13426* BFD_RELOC_PPC64_PLTGOT16_DS: howto manager. (line 745) 13427* BFD_RELOC_PPC64_PLTGOT16_HA: howto manager. (line 735) 13428* BFD_RELOC_PPC64_PLTGOT16_HI: howto manager. (line 734) 13429* BFD_RELOC_PPC64_PLTGOT16_LO: howto manager. (line 733) 13430* BFD_RELOC_PPC64_PLTGOT16_LO_DS: howto manager. (line 746) 13431* BFD_RELOC_PPC64_SECTOFF_DS: howto manager. (line 741) 13432* BFD_RELOC_PPC64_SECTOFF_LO_DS: howto manager. (line 742) 13433* BFD_RELOC_PPC64_TOC: howto manager. (line 731) 13434* BFD_RELOC_PPC64_TOC16_DS: howto manager. (line 743) 13435* BFD_RELOC_PPC64_TOC16_HA: howto manager. (line 730) 13436* BFD_RELOC_PPC64_TOC16_HI: howto manager. (line 729) 13437* BFD_RELOC_PPC64_TOC16_LO: howto manager. (line 728) 13438* BFD_RELOC_PPC64_TOC16_LO_DS: howto manager. (line 744) 13439* BFD_RELOC_PPC64_TPREL16_DS: howto manager. (line 783) 13440* BFD_RELOC_PPC64_TPREL16_HIGH: howto manager. (line 795) 13441* BFD_RELOC_PPC64_TPREL16_HIGHA: howto manager. (line 796) 13442* BFD_RELOC_PPC64_TPREL16_HIGHER: howto manager. (line 785) 13443* BFD_RELOC_PPC64_TPREL16_HIGHERA: howto manager. (line 786) 13444* BFD_RELOC_PPC64_TPREL16_HIGHEST: howto manager. (line 787) 13445* BFD_RELOC_PPC64_TPREL16_HIGHESTA: howto manager. (line 788) 13446* BFD_RELOC_PPC64_TPREL16_LO_DS: howto manager. (line 784) 13447* BFD_RELOC_PPC_B16: howto manager. (line 679) 13448* BFD_RELOC_PPC_B16_BRNTAKEN: howto manager. (line 681) 13449* BFD_RELOC_PPC_B16_BRTAKEN: howto manager. (line 680) 13450* BFD_RELOC_PPC_B26: howto manager. (line 676) 13451* BFD_RELOC_PPC_BA16: howto manager. (line 682) 13452* BFD_RELOC_PPC_BA16_BRNTAKEN: howto manager. (line 684) 13453* BFD_RELOC_PPC_BA16_BRTAKEN: howto manager. (line 683) 13454* BFD_RELOC_PPC_BA26: howto manager. (line 677) 13455* BFD_RELOC_PPC_COPY: howto manager. (line 685) 13456* BFD_RELOC_PPC_DTPMOD: howto manager. (line 756) 13457* BFD_RELOC_PPC_DTPREL: howto manager. (line 766) 13458* BFD_RELOC_PPC_DTPREL16: howto manager. (line 762) 13459* BFD_RELOC_PPC_DTPREL16_HA: howto manager. (line 765) 13460* BFD_RELOC_PPC_DTPREL16_HI: howto manager. (line 764) 13461* BFD_RELOC_PPC_DTPREL16_LO: howto manager. (line 763) 13462* BFD_RELOC_PPC_EMB_BIT_FLD: howto manager. (line 704) 13463* BFD_RELOC_PPC_EMB_MRKREF: howto manager. (line 699) 13464* BFD_RELOC_PPC_EMB_NADDR16: howto manager. (line 691) 13465* BFD_RELOC_PPC_EMB_NADDR16_HA: howto manager. (line 694) 13466* BFD_RELOC_PPC_EMB_NADDR16_HI: howto manager. (line 693) 13467* BFD_RELOC_PPC_EMB_NADDR16_LO: howto manager. (line 692) 13468* BFD_RELOC_PPC_EMB_NADDR32: howto manager. (line 690) 13469* BFD_RELOC_PPC_EMB_RELSDA: howto manager. (line 705) 13470* BFD_RELOC_PPC_EMB_RELSEC16: howto manager. (line 700) 13471* BFD_RELOC_PPC_EMB_RELST_HA: howto manager. (line 703) 13472* BFD_RELOC_PPC_EMB_RELST_HI: howto manager. (line 702) 13473* BFD_RELOC_PPC_EMB_RELST_LO: howto manager. (line 701) 13474* BFD_RELOC_PPC_EMB_SDA21: howto manager. (line 698) 13475* BFD_RELOC_PPC_EMB_SDA2I16: howto manager. (line 696) 13476* BFD_RELOC_PPC_EMB_SDA2REL: howto manager. (line 697) 13477* BFD_RELOC_PPC_EMB_SDAI16: howto manager. (line 695) 13478* BFD_RELOC_PPC_GLOB_DAT: howto manager. (line 686) 13479* BFD_RELOC_PPC_GOT_DTPREL16: howto manager. (line 779) 13480* BFD_RELOC_PPC_GOT_DTPREL16_HA: howto manager. (line 782) 13481* BFD_RELOC_PPC_GOT_DTPREL16_HI: howto manager. (line 781) 13482* BFD_RELOC_PPC_GOT_DTPREL16_LO: howto manager. (line 780) 13483* BFD_RELOC_PPC_GOT_TLSGD16: howto manager. (line 767) 13484* BFD_RELOC_PPC_GOT_TLSGD16_HA: howto manager. (line 770) 13485* BFD_RELOC_PPC_GOT_TLSGD16_HI: howto manager. (line 769) 13486* BFD_RELOC_PPC_GOT_TLSGD16_LO: howto manager. (line 768) 13487* BFD_RELOC_PPC_GOT_TLSLD16: howto manager. (line 771) 13488* BFD_RELOC_PPC_GOT_TLSLD16_HA: howto manager. (line 774) 13489* BFD_RELOC_PPC_GOT_TLSLD16_HI: howto manager. (line 773) 13490* BFD_RELOC_PPC_GOT_TLSLD16_LO: howto manager. (line 772) 13491* BFD_RELOC_PPC_GOT_TPREL16: howto manager. (line 775) 13492* BFD_RELOC_PPC_GOT_TPREL16_HA: howto manager. (line 778) 13493* BFD_RELOC_PPC_GOT_TPREL16_HI: howto manager. (line 777) 13494* BFD_RELOC_PPC_GOT_TPREL16_LO: howto manager. (line 776) 13495* BFD_RELOC_PPC_JMP_SLOT: howto manager. (line 687) 13496* BFD_RELOC_PPC_LOCAL24PC: howto manager. (line 689) 13497* BFD_RELOC_PPC_REL16DX_HA: howto manager. (line 723) 13498* BFD_RELOC_PPC_RELATIVE: howto manager. (line 688) 13499* BFD_RELOC_PPC_TLS: howto manager. (line 753) 13500* BFD_RELOC_PPC_TLSGD: howto manager. (line 754) 13501* BFD_RELOC_PPC_TLSLD: howto manager. (line 755) 13502* BFD_RELOC_PPC_TOC16: howto manager. (line 678) 13503* BFD_RELOC_PPC_TPREL: howto manager. (line 761) 13504* BFD_RELOC_PPC_TPREL16: howto manager. (line 757) 13505* BFD_RELOC_PPC_TPREL16_HA: howto manager. (line 760) 13506* BFD_RELOC_PPC_TPREL16_HI: howto manager. (line 759) 13507* BFD_RELOC_PPC_TPREL16_LO: howto manager. (line 758) 13508* BFD_RELOC_PPC_VLE_HA16A: howto manager. (line 713) 13509* BFD_RELOC_PPC_VLE_HA16D: howto manager. (line 714) 13510* BFD_RELOC_PPC_VLE_HI16A: howto manager. (line 711) 13511* BFD_RELOC_PPC_VLE_HI16D: howto manager. (line 712) 13512* BFD_RELOC_PPC_VLE_LO16A: howto manager. (line 709) 13513* BFD_RELOC_PPC_VLE_LO16D: howto manager. (line 710) 13514* BFD_RELOC_PPC_VLE_REL15: howto manager. (line 707) 13515* BFD_RELOC_PPC_VLE_REL24: howto manager. (line 708) 13516* BFD_RELOC_PPC_VLE_REL8: howto manager. (line 706) 13517* BFD_RELOC_PPC_VLE_SDA21: howto manager. (line 715) 13518* BFD_RELOC_PPC_VLE_SDA21_LO: howto manager. (line 716) 13519* BFD_RELOC_PPC_VLE_SDAREL_HA16A: howto manager. (line 721) 13520* BFD_RELOC_PPC_VLE_SDAREL_HA16D: howto manager. (line 722) 13521* BFD_RELOC_PPC_VLE_SDAREL_HI16A: howto manager. (line 719) 13522* BFD_RELOC_PPC_VLE_SDAREL_HI16D: howto manager. (line 720) 13523* BFD_RELOC_PPC_VLE_SDAREL_LO16A: howto manager. (line 717) 13524* BFD_RELOC_PPC_VLE_SDAREL_LO16D: howto manager. (line 718) 13525* BFD_RELOC_RELC: howto manager. (line 2747) 13526* BFD_RELOC_RL78_16_OP: howto manager. (line 2067) 13527* BFD_RELOC_RL78_16U: howto manager. (line 2071) 13528* BFD_RELOC_RL78_24_OP: howto manager. (line 2068) 13529* BFD_RELOC_RL78_24U: howto manager. (line 2072) 13530* BFD_RELOC_RL78_32_OP: howto manager. (line 2069) 13531* BFD_RELOC_RL78_8U: howto manager. (line 2070) 13532* BFD_RELOC_RL78_ABS16: howto manager. (line 2084) 13533* BFD_RELOC_RL78_ABS16_REV: howto manager. (line 2085) 13534* BFD_RELOC_RL78_ABS16U: howto manager. (line 2088) 13535* BFD_RELOC_RL78_ABS16UL: howto manager. (line 2090) 13536* BFD_RELOC_RL78_ABS16UW: howto manager. (line 2089) 13537* BFD_RELOC_RL78_ABS32: howto manager. (line 2086) 13538* BFD_RELOC_RL78_ABS32_REV: howto manager. (line 2087) 13539* BFD_RELOC_RL78_ABS8: howto manager. (line 2083) 13540* BFD_RELOC_RL78_CODE: howto manager. (line 2095) 13541* BFD_RELOC_RL78_DIFF: howto manager. (line 2074) 13542* BFD_RELOC_RL78_DIR3U_PCREL: howto manager. (line 2073) 13543* BFD_RELOC_RL78_GPRELB: howto manager. (line 2075) 13544* BFD_RELOC_RL78_GPRELL: howto manager. (line 2077) 13545* BFD_RELOC_RL78_GPRELW: howto manager. (line 2076) 13546* BFD_RELOC_RL78_HI16: howto manager. (line 2092) 13547* BFD_RELOC_RL78_HI8: howto manager. (line 2093) 13548* BFD_RELOC_RL78_LO16: howto manager. (line 2094) 13549* BFD_RELOC_RL78_NEG16: howto manager. (line 2064) 13550* BFD_RELOC_RL78_NEG24: howto manager. (line 2065) 13551* BFD_RELOC_RL78_NEG32: howto manager. (line 2066) 13552* BFD_RELOC_RL78_NEG8: howto manager. (line 2063) 13553* BFD_RELOC_RL78_OP_AND: howto manager. (line 2081) 13554* BFD_RELOC_RL78_OP_NEG: howto manager. (line 2080) 13555* BFD_RELOC_RL78_OP_SHRA: howto manager. (line 2082) 13556* BFD_RELOC_RL78_OP_SUBTRACT: howto manager. (line 2079) 13557* BFD_RELOC_RL78_RELAX: howto manager. (line 2091) 13558* BFD_RELOC_RL78_SADDR: howto manager. (line 2096) 13559* BFD_RELOC_RL78_SYM: howto manager. (line 2078) 13560* BFD_RELOC_RVA: howto manager. (line 104) 13561* BFD_RELOC_RX_16_OP: howto manager. (line 2103) 13562* BFD_RELOC_RX_16U: howto manager. (line 2107) 13563* BFD_RELOC_RX_24_OP: howto manager. (line 2104) 13564* BFD_RELOC_RX_24U: howto manager. (line 2108) 13565* BFD_RELOC_RX_32_OP: howto manager. (line 2105) 13566* BFD_RELOC_RX_8U: howto manager. (line 2106) 13567* BFD_RELOC_RX_ABS16: howto manager. (line 2118) 13568* BFD_RELOC_RX_ABS16_REV: howto manager. (line 2119) 13569* BFD_RELOC_RX_ABS16U: howto manager. (line 2122) 13570* BFD_RELOC_RX_ABS16UL: howto manager. (line 2124) 13571* BFD_RELOC_RX_ABS16UW: howto manager. (line 2123) 13572* BFD_RELOC_RX_ABS32: howto manager. (line 2120) 13573* BFD_RELOC_RX_ABS32_REV: howto manager. (line 2121) 13574* BFD_RELOC_RX_ABS8: howto manager. (line 2117) 13575* BFD_RELOC_RX_DIFF: howto manager. (line 2110) 13576* BFD_RELOC_RX_DIR3U_PCREL: howto manager. (line 2109) 13577* BFD_RELOC_RX_GPRELB: howto manager. (line 2111) 13578* BFD_RELOC_RX_GPRELL: howto manager. (line 2113) 13579* BFD_RELOC_RX_GPRELW: howto manager. (line 2112) 13580* BFD_RELOC_RX_NEG16: howto manager. (line 2100) 13581* BFD_RELOC_RX_NEG24: howto manager. (line 2101) 13582* BFD_RELOC_RX_NEG32: howto manager. (line 2102) 13583* BFD_RELOC_RX_NEG8: howto manager. (line 2099) 13584* BFD_RELOC_RX_OP_NEG: howto manager. (line 2116) 13585* BFD_RELOC_RX_OP_SUBTRACT: howto manager. (line 2115) 13586* BFD_RELOC_RX_RELAX: howto manager. (line 2125) 13587* BFD_RELOC_RX_SYM: howto manager. (line 2114) 13588* BFD_RELOC_SCORE16_BRANCH: howto manager. (line 2268) 13589* BFD_RELOC_SCORE16_JMP: howto manager. (line 2265) 13590* BFD_RELOC_SCORE_BCMP: howto manager. (line 2271) 13591* BFD_RELOC_SCORE_BRANCH: howto manager. (line 2256) 13592* BFD_RELOC_SCORE_CALL15: howto manager. (line 2276) 13593* BFD_RELOC_SCORE_DUMMY2: howto manager. (line 2252) 13594* BFD_RELOC_SCORE_DUMMY_HI16: howto manager. (line 2277) 13595* BFD_RELOC_SCORE_GOT15: howto manager. (line 2274) 13596* BFD_RELOC_SCORE_GOT_LO16: howto manager. (line 2275) 13597* BFD_RELOC_SCORE_GPREL15: howto manager. (line 2249) 13598* BFD_RELOC_SCORE_IMM30: howto manager. (line 2259) 13599* BFD_RELOC_SCORE_IMM32: howto manager. (line 2262) 13600* BFD_RELOC_SCORE_JMP: howto manager. (line 2253) 13601* BFD_RELOC_SH_ALIGN: howto manager. (line 998) 13602* BFD_RELOC_SH_CODE: howto manager. (line 999) 13603* BFD_RELOC_SH_COPY: howto manager. (line 1004) 13604* BFD_RELOC_SH_COPY64: howto manager. (line 1029) 13605* BFD_RELOC_SH_COUNT: howto manager. (line 997) 13606* BFD_RELOC_SH_DATA: howto manager. (line 1000) 13607* BFD_RELOC_SH_DISP12: howto manager. (line 980) 13608* BFD_RELOC_SH_DISP12BY2: howto manager. (line 981) 13609* BFD_RELOC_SH_DISP12BY4: howto manager. (line 982) 13610* BFD_RELOC_SH_DISP12BY8: howto manager. (line 983) 13611* BFD_RELOC_SH_DISP20: howto manager. (line 984) 13612* BFD_RELOC_SH_DISP20BY8: howto manager. (line 985) 13613* BFD_RELOC_SH_FUNCDESC: howto manager. (line 1072) 13614* BFD_RELOC_SH_GLOB_DAT: howto manager. (line 1005) 13615* BFD_RELOC_SH_GLOB_DAT64: howto manager. (line 1030) 13616* BFD_RELOC_SH_GOT10BY4: howto manager. (line 1033) 13617* BFD_RELOC_SH_GOT10BY8: howto manager. (line 1034) 13618* BFD_RELOC_SH_GOT20: howto manager. (line 1066) 13619* BFD_RELOC_SH_GOT_HI16: howto manager. (line 1012) 13620* BFD_RELOC_SH_GOT_LOW16: howto manager. (line 1009) 13621* BFD_RELOC_SH_GOT_MEDHI16: howto manager. (line 1011) 13622* BFD_RELOC_SH_GOT_MEDLOW16: howto manager. (line 1010) 13623* BFD_RELOC_SH_GOTFUNCDESC: howto manager. (line 1068) 13624* BFD_RELOC_SH_GOTFUNCDESC20: howto manager. (line 1069) 13625* BFD_RELOC_SH_GOTOFF20: howto manager. (line 1067) 13626* BFD_RELOC_SH_GOTOFF_HI16: howto manager. (line 1024) 13627* BFD_RELOC_SH_GOTOFF_LOW16: howto manager. (line 1021) 13628* BFD_RELOC_SH_GOTOFF_MEDHI16: howto manager. (line 1023) 13629* BFD_RELOC_SH_GOTOFF_MEDLOW16: howto manager. (line 1022) 13630* BFD_RELOC_SH_GOTOFFFUNCDESC: howto manager. (line 1070) 13631* BFD_RELOC_SH_GOTOFFFUNCDESC20: howto manager. (line 1071) 13632* BFD_RELOC_SH_GOTPC: howto manager. (line 1008) 13633* BFD_RELOC_SH_GOTPC_HI16: howto manager. (line 1028) 13634* BFD_RELOC_SH_GOTPC_LOW16: howto manager. (line 1025) 13635* BFD_RELOC_SH_GOTPC_MEDHI16: howto manager. (line 1027) 13636* BFD_RELOC_SH_GOTPC_MEDLOW16: howto manager. (line 1026) 13637* BFD_RELOC_SH_GOTPLT10BY4: howto manager. (line 1035) 13638* BFD_RELOC_SH_GOTPLT10BY8: howto manager. (line 1036) 13639* BFD_RELOC_SH_GOTPLT32: howto manager. (line 1037) 13640* BFD_RELOC_SH_GOTPLT_HI16: howto manager. (line 1016) 13641* BFD_RELOC_SH_GOTPLT_LOW16: howto manager. (line 1013) 13642* BFD_RELOC_SH_GOTPLT_MEDHI16: howto manager. (line 1015) 13643* BFD_RELOC_SH_GOTPLT_MEDLOW16: howto manager. (line 1014) 13644* BFD_RELOC_SH_IMM3: howto manager. (line 978) 13645* BFD_RELOC_SH_IMM3U: howto manager. (line 979) 13646* BFD_RELOC_SH_IMM4: howto manager. (line 986) 13647* BFD_RELOC_SH_IMM4BY2: howto manager. (line 987) 13648* BFD_RELOC_SH_IMM4BY4: howto manager. (line 988) 13649* BFD_RELOC_SH_IMM8: howto manager. (line 989) 13650* BFD_RELOC_SH_IMM8BY2: howto manager. (line 990) 13651* BFD_RELOC_SH_IMM8BY4: howto manager. (line 991) 13652* BFD_RELOC_SH_IMM_HI16: howto manager. (line 1055) 13653* BFD_RELOC_SH_IMM_HI16_PCREL: howto manager. (line 1056) 13654* BFD_RELOC_SH_IMM_LOW16: howto manager. (line 1049) 13655* BFD_RELOC_SH_IMM_LOW16_PCREL: howto manager. (line 1050) 13656* BFD_RELOC_SH_IMM_MEDHI16: howto manager. (line 1053) 13657* BFD_RELOC_SH_IMM_MEDHI16_PCREL: howto manager. (line 1054) 13658* BFD_RELOC_SH_IMM_MEDLOW16: howto manager. (line 1051) 13659* BFD_RELOC_SH_IMM_MEDLOW16_PCREL: howto manager. (line 1052) 13660* BFD_RELOC_SH_IMMS10: howto manager. (line 1043) 13661* BFD_RELOC_SH_IMMS10BY2: howto manager. (line 1044) 13662* BFD_RELOC_SH_IMMS10BY4: howto manager. (line 1045) 13663* BFD_RELOC_SH_IMMS10BY8: howto manager. (line 1046) 13664* BFD_RELOC_SH_IMMS16: howto manager. (line 1047) 13665* BFD_RELOC_SH_IMMS6: howto manager. (line 1040) 13666* BFD_RELOC_SH_IMMS6BY32: howto manager. (line 1041) 13667* BFD_RELOC_SH_IMMU16: howto manager. (line 1048) 13668* BFD_RELOC_SH_IMMU5: howto manager. (line 1039) 13669* BFD_RELOC_SH_IMMU6: howto manager. (line 1042) 13670* BFD_RELOC_SH_JMP_SLOT: howto manager. (line 1006) 13671* BFD_RELOC_SH_JMP_SLOT64: howto manager. (line 1031) 13672* BFD_RELOC_SH_LABEL: howto manager. (line 1001) 13673* BFD_RELOC_SH_LOOP_END: howto manager. (line 1003) 13674* BFD_RELOC_SH_LOOP_START: howto manager. (line 1002) 13675* BFD_RELOC_SH_PCDISP12BY2: howto manager. (line 977) 13676* BFD_RELOC_SH_PCDISP8BY2: howto manager. (line 976) 13677* BFD_RELOC_SH_PCRELIMM8BY2: howto manager. (line 992) 13678* BFD_RELOC_SH_PCRELIMM8BY4: howto manager. (line 993) 13679* BFD_RELOC_SH_PLT_HI16: howto manager. (line 1020) 13680* BFD_RELOC_SH_PLT_LOW16: howto manager. (line 1017) 13681* BFD_RELOC_SH_PLT_MEDHI16: howto manager. (line 1019) 13682* BFD_RELOC_SH_PLT_MEDLOW16: howto manager. (line 1018) 13683* BFD_RELOC_SH_PT_16: howto manager. (line 1057) 13684* BFD_RELOC_SH_RELATIVE: howto manager. (line 1007) 13685* BFD_RELOC_SH_RELATIVE64: howto manager. (line 1032) 13686* BFD_RELOC_SH_SHMEDIA_CODE: howto manager. (line 1038) 13687* BFD_RELOC_SH_SWITCH16: howto manager. (line 994) 13688* BFD_RELOC_SH_SWITCH32: howto manager. (line 995) 13689* BFD_RELOC_SH_TLS_DTPMOD32: howto manager. (line 1063) 13690* BFD_RELOC_SH_TLS_DTPOFF32: howto manager. (line 1064) 13691* BFD_RELOC_SH_TLS_GD_32: howto manager. (line 1058) 13692* BFD_RELOC_SH_TLS_IE_32: howto manager. (line 1061) 13693* BFD_RELOC_SH_TLS_LD_32: howto manager. (line 1059) 13694* BFD_RELOC_SH_TLS_LDO_32: howto manager. (line 1060) 13695* BFD_RELOC_SH_TLS_LE_32: howto manager. (line 1062) 13696* BFD_RELOC_SH_TLS_TPOFF32: howto manager. (line 1065) 13697* BFD_RELOC_SH_USES: howto manager. (line 996) 13698* BFD_RELOC_SIZE32: howto manager. (line 74) 13699* BFD_RELOC_SIZE64: howto manager. (line 75) 13700* BFD_RELOC_SPARC13: howto manager. (line 138) 13701* BFD_RELOC_SPARC22: howto manager. (line 137) 13702* BFD_RELOC_SPARC_10: howto manager. (line 167) 13703* BFD_RELOC_SPARC_11: howto manager. (line 168) 13704* BFD_RELOC_SPARC_5: howto manager. (line 180) 13705* BFD_RELOC_SPARC_6: howto manager. (line 179) 13706* BFD_RELOC_SPARC_64: howto manager. (line 166) 13707* BFD_RELOC_SPARC_7: howto manager. (line 178) 13708* BFD_RELOC_SPARC_BASE13: howto manager. (line 162) 13709* BFD_RELOC_SPARC_BASE22: howto manager. (line 163) 13710* BFD_RELOC_SPARC_COPY: howto manager. (line 145) 13711* BFD_RELOC_SPARC_DISP64: howto manager. (line 181) 13712* BFD_RELOC_SPARC_GLOB_DAT: howto manager. (line 146) 13713* BFD_RELOC_SPARC_GOT10: howto manager. (line 139) 13714* BFD_RELOC_SPARC_GOT13: howto manager. (line 140) 13715* BFD_RELOC_SPARC_GOT22: howto manager. (line 141) 13716* BFD_RELOC_SPARC_GOTDATA_HIX22: howto manager. (line 152) 13717* BFD_RELOC_SPARC_GOTDATA_LOX10: howto manager. (line 153) 13718* BFD_RELOC_SPARC_GOTDATA_OP: howto manager. (line 156) 13719* BFD_RELOC_SPARC_GOTDATA_OP_HIX22: howto manager. (line 154) 13720* BFD_RELOC_SPARC_GOTDATA_OP_LOX10: howto manager. (line 155) 13721* BFD_RELOC_SPARC_H34: howto manager. (line 190) 13722* BFD_RELOC_SPARC_H44: howto manager. (line 186) 13723* BFD_RELOC_SPARC_HH22: howto manager. (line 170) 13724* BFD_RELOC_SPARC_HIX22: howto manager. (line 184) 13725* BFD_RELOC_SPARC_HM10: howto manager. (line 171) 13726* BFD_RELOC_SPARC_IRELATIVE: howto manager. (line 158) 13727* BFD_RELOC_SPARC_JMP_IREL: howto manager. (line 157) 13728* BFD_RELOC_SPARC_JMP_SLOT: howto manager. (line 147) 13729* BFD_RELOC_SPARC_L44: howto manager. (line 188) 13730* BFD_RELOC_SPARC_LM22: howto manager. (line 172) 13731* BFD_RELOC_SPARC_LOX10: howto manager. (line 185) 13732* BFD_RELOC_SPARC_M44: howto manager. (line 187) 13733* BFD_RELOC_SPARC_OLO10: howto manager. (line 169) 13734* BFD_RELOC_SPARC_PC10: howto manager. (line 142) 13735* BFD_RELOC_SPARC_PC22: howto manager. (line 143) 13736* BFD_RELOC_SPARC_PC_HH22: howto manager. (line 173) 13737* BFD_RELOC_SPARC_PC_HM10: howto manager. (line 174) 13738* BFD_RELOC_SPARC_PC_LM22: howto manager. (line 175) 13739* BFD_RELOC_SPARC_PLT32: howto manager. (line 182) 13740* BFD_RELOC_SPARC_PLT64: howto manager. (line 183) 13741* BFD_RELOC_SPARC_REGISTER: howto manager. (line 189) 13742* BFD_RELOC_SPARC_RELATIVE: howto manager. (line 148) 13743* BFD_RELOC_SPARC_REV32: howto manager. (line 196) 13744* BFD_RELOC_SPARC_SIZE32: howto manager. (line 191) 13745* BFD_RELOC_SPARC_SIZE64: howto manager. (line 192) 13746* BFD_RELOC_SPARC_TLS_DTPMOD32: howto manager. (line 217) 13747* BFD_RELOC_SPARC_TLS_DTPMOD64: howto manager. (line 218) 13748* BFD_RELOC_SPARC_TLS_DTPOFF32: howto manager. (line 219) 13749* BFD_RELOC_SPARC_TLS_DTPOFF64: howto manager. (line 220) 13750* BFD_RELOC_SPARC_TLS_GD_ADD: howto manager. (line 201) 13751* BFD_RELOC_SPARC_TLS_GD_CALL: howto manager. (line 202) 13752* BFD_RELOC_SPARC_TLS_GD_HI22: howto manager. (line 199) 13753* BFD_RELOC_SPARC_TLS_GD_LO10: howto manager. (line 200) 13754* BFD_RELOC_SPARC_TLS_IE_ADD: howto manager. (line 214) 13755* BFD_RELOC_SPARC_TLS_IE_HI22: howto manager. (line 210) 13756* BFD_RELOC_SPARC_TLS_IE_LD: howto manager. (line 212) 13757* BFD_RELOC_SPARC_TLS_IE_LDX: howto manager. (line 213) 13758* BFD_RELOC_SPARC_TLS_IE_LO10: howto manager. (line 211) 13759* BFD_RELOC_SPARC_TLS_LDM_ADD: howto manager. (line 205) 13760* BFD_RELOC_SPARC_TLS_LDM_CALL: howto manager. (line 206) 13761* BFD_RELOC_SPARC_TLS_LDM_HI22: howto manager. (line 203) 13762* BFD_RELOC_SPARC_TLS_LDM_LO10: howto manager. (line 204) 13763* BFD_RELOC_SPARC_TLS_LDO_ADD: howto manager. (line 209) 13764* BFD_RELOC_SPARC_TLS_LDO_HIX22: howto manager. (line 207) 13765* BFD_RELOC_SPARC_TLS_LDO_LOX10: howto manager. (line 208) 13766* BFD_RELOC_SPARC_TLS_LE_HIX22: howto manager. (line 215) 13767* BFD_RELOC_SPARC_TLS_LE_LOX10: howto manager. (line 216) 13768* BFD_RELOC_SPARC_TLS_TPOFF32: howto manager. (line 221) 13769* BFD_RELOC_SPARC_TLS_TPOFF64: howto manager. (line 222) 13770* BFD_RELOC_SPARC_UA16: howto manager. (line 149) 13771* BFD_RELOC_SPARC_UA32: howto manager. (line 150) 13772* BFD_RELOC_SPARC_UA64: howto manager. (line 151) 13773* BFD_RELOC_SPARC_WDISP10: howto manager. (line 193) 13774* BFD_RELOC_SPARC_WDISP16: howto manager. (line 176) 13775* BFD_RELOC_SPARC_WDISP19: howto manager. (line 177) 13776* BFD_RELOC_SPARC_WDISP22: howto manager. (line 136) 13777* BFD_RELOC_SPARC_WPLT30: howto manager. (line 144) 13778* BFD_RELOC_SPU_ADD_PIC: howto manager. (line 239) 13779* BFD_RELOC_SPU_HI16: howto manager. (line 236) 13780* BFD_RELOC_SPU_IMM10: howto manager. (line 227) 13781* BFD_RELOC_SPU_IMM10W: howto manager. (line 228) 13782* BFD_RELOC_SPU_IMM16: howto manager. (line 229) 13783* BFD_RELOC_SPU_IMM16W: howto manager. (line 230) 13784* BFD_RELOC_SPU_IMM18: howto manager. (line 231) 13785* BFD_RELOC_SPU_IMM7: howto manager. (line 225) 13786* BFD_RELOC_SPU_IMM8: howto manager. (line 226) 13787* BFD_RELOC_SPU_LO16: howto manager. (line 235) 13788* BFD_RELOC_SPU_PCREL16: howto manager. (line 234) 13789* BFD_RELOC_SPU_PCREL9a: howto manager. (line 232) 13790* BFD_RELOC_SPU_PCREL9b: howto manager. (line 233) 13791* BFD_RELOC_SPU_PPU32: howto manager. (line 237) 13792* BFD_RELOC_SPU_PPU64: howto manager. (line 238) 13793* BFD_RELOC_THUMB_PCREL_BLX: howto manager. (line 819) 13794* BFD_RELOC_THUMB_PCREL_BRANCH12: howto manager. (line 833) 13795* BFD_RELOC_THUMB_PCREL_BRANCH20: howto manager. (line 834) 13796* BFD_RELOC_THUMB_PCREL_BRANCH23: howto manager. (line 835) 13797* BFD_RELOC_THUMB_PCREL_BRANCH25: howto manager. (line 836) 13798* BFD_RELOC_THUMB_PCREL_BRANCH7: howto manager. (line 831) 13799* BFD_RELOC_THUMB_PCREL_BRANCH9: howto manager. (line 832) 13800* BFD_RELOC_TIC30_LDP: howto manager. (line 1716) 13801* BFD_RELOC_TIC54X_16_OF_23: howto manager. (line 1734) 13802* BFD_RELOC_TIC54X_23: howto manager. (line 1731) 13803* BFD_RELOC_TIC54X_MS7_OF_23: howto manager. (line 1739) 13804* BFD_RELOC_TIC54X_PARTLS7: howto manager. (line 1721) 13805* BFD_RELOC_TIC54X_PARTMS9: howto manager. (line 1726) 13806* BFD_RELOC_TILEGX_BROFF_X1: howto manager. (line 3604) 13807* BFD_RELOC_TILEGX_COPY: howto manager. (line 3600) 13808* BFD_RELOC_TILEGX_DEST_IMM8_X1: howto manager. (line 3611) 13809* BFD_RELOC_TILEGX_GLOB_DAT: howto manager. (line 3601) 13810* BFD_RELOC_TILEGX_HW0: howto manager. (line 3593) 13811* BFD_RELOC_TILEGX_HW0_LAST: howto manager. (line 3597) 13812* BFD_RELOC_TILEGX_HW1: howto manager. (line 3594) 13813* BFD_RELOC_TILEGX_HW1_LAST: howto manager. (line 3598) 13814* BFD_RELOC_TILEGX_HW2: howto manager. (line 3595) 13815* BFD_RELOC_TILEGX_HW2_LAST: howto manager. (line 3599) 13816* BFD_RELOC_TILEGX_HW3: howto manager. (line 3596) 13817* BFD_RELOC_TILEGX_IMM16_X0_HW0: howto manager. (line 3620) 13818* BFD_RELOC_TILEGX_IMM16_X0_HW0_GOT: howto manager. (line 3648) 13819* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST: howto manager. (line 3628) 13820* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_GOT: howto manager. (line 3656) 13821* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_PCREL: howto manager. (line 3642) 13822* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_PLT_PCREL: howto manager. 13823 (line 3676) 13824* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_GD: howto manager. (line 3670) 13825* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_IE: howto manager. (line 3682) 13826* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_LE: howto manager. (line 3666) 13827* BFD_RELOC_TILEGX_IMM16_X0_HW0_PCREL: howto manager. (line 3634) 13828* BFD_RELOC_TILEGX_IMM16_X0_HW0_PLT_PCREL: howto manager. (line 3650) 13829* BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_GD: howto manager. (line 3662) 13830* BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_IE: howto manager. (line 3674) 13831* BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_LE: howto manager. (line 3664) 13832* BFD_RELOC_TILEGX_IMM16_X0_HW1: howto manager. (line 3622) 13833* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST: howto manager. (line 3630) 13834* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_GOT: howto manager. (line 3658) 13835* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_PCREL: howto manager. (line 3644) 13836* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_PLT_PCREL: howto manager. 13837 (line 3678) 13838* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_GD: howto manager. (line 3672) 13839* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_IE: howto manager. (line 3684) 13840* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_LE: howto manager. (line 3668) 13841* BFD_RELOC_TILEGX_IMM16_X0_HW1_PCREL: howto manager. (line 3636) 13842* BFD_RELOC_TILEGX_IMM16_X0_HW1_PLT_PCREL: howto manager. (line 3652) 13843* BFD_RELOC_TILEGX_IMM16_X0_HW2: howto manager. (line 3624) 13844* BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST: howto manager. (line 3632) 13845* BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_PCREL: howto manager. (line 3646) 13846* BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_PLT_PCREL: howto manager. 13847 (line 3680) 13848* BFD_RELOC_TILEGX_IMM16_X0_HW2_PCREL: howto manager. (line 3638) 13849* BFD_RELOC_TILEGX_IMM16_X0_HW2_PLT_PCREL: howto manager. (line 3654) 13850* BFD_RELOC_TILEGX_IMM16_X0_HW3: howto manager. (line 3626) 13851* BFD_RELOC_TILEGX_IMM16_X0_HW3_PCREL: howto manager. (line 3640) 13852* BFD_RELOC_TILEGX_IMM16_X0_HW3_PLT_PCREL: howto manager. (line 3660) 13853* BFD_RELOC_TILEGX_IMM16_X1_HW0: howto manager. (line 3621) 13854* BFD_RELOC_TILEGX_IMM16_X1_HW0_GOT: howto manager. (line 3649) 13855* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST: howto manager. (line 3629) 13856* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_GOT: howto manager. (line 3657) 13857* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_PCREL: howto manager. (line 3643) 13858* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_PLT_PCREL: howto manager. 13859 (line 3677) 13860* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_GD: howto manager. (line 3671) 13861* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_IE: howto manager. (line 3683) 13862* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_LE: howto manager. (line 3667) 13863* BFD_RELOC_TILEGX_IMM16_X1_HW0_PCREL: howto manager. (line 3635) 13864* BFD_RELOC_TILEGX_IMM16_X1_HW0_PLT_PCREL: howto manager. (line 3651) 13865* BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_GD: howto manager. (line 3663) 13866* BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_IE: howto manager. (line 3675) 13867* BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_LE: howto manager. (line 3665) 13868* BFD_RELOC_TILEGX_IMM16_X1_HW1: howto manager. (line 3623) 13869* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST: howto manager. (line 3631) 13870* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_GOT: howto manager. (line 3659) 13871* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_PCREL: howto manager. (line 3645) 13872* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_PLT_PCREL: howto manager. 13873 (line 3679) 13874* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_GD: howto manager. (line 3673) 13875* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_IE: howto manager. (line 3685) 13876* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_LE: howto manager. (line 3669) 13877* BFD_RELOC_TILEGX_IMM16_X1_HW1_PCREL: howto manager. (line 3637) 13878* BFD_RELOC_TILEGX_IMM16_X1_HW1_PLT_PCREL: howto manager. (line 3653) 13879* BFD_RELOC_TILEGX_IMM16_X1_HW2: howto manager. (line 3625) 13880* BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST: howto manager. (line 3633) 13881* BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PCREL: howto manager. (line 3647) 13882* BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PLT_PCREL: howto manager. 13883 (line 3681) 13884* BFD_RELOC_TILEGX_IMM16_X1_HW2_PCREL: howto manager. (line 3639) 13885* BFD_RELOC_TILEGX_IMM16_X1_HW2_PLT_PCREL: howto manager. (line 3655) 13886* BFD_RELOC_TILEGX_IMM16_X1_HW3: howto manager. (line 3627) 13887* BFD_RELOC_TILEGX_IMM16_X1_HW3_PCREL: howto manager. (line 3641) 13888* BFD_RELOC_TILEGX_IMM16_X1_HW3_PLT_PCREL: howto manager. (line 3661) 13889* BFD_RELOC_TILEGX_IMM8_X0: howto manager. (line 3607) 13890* BFD_RELOC_TILEGX_IMM8_X0_TLS_ADD: howto manager. (line 3698) 13891* BFD_RELOC_TILEGX_IMM8_X0_TLS_GD_ADD: howto manager. (line 3693) 13892* BFD_RELOC_TILEGX_IMM8_X1: howto manager. (line 3609) 13893* BFD_RELOC_TILEGX_IMM8_X1_TLS_ADD: howto manager. (line 3699) 13894* BFD_RELOC_TILEGX_IMM8_X1_TLS_GD_ADD: howto manager. (line 3694) 13895* BFD_RELOC_TILEGX_IMM8_Y0: howto manager. (line 3608) 13896* BFD_RELOC_TILEGX_IMM8_Y0_TLS_ADD: howto manager. (line 3700) 13897* BFD_RELOC_TILEGX_IMM8_Y0_TLS_GD_ADD: howto manager. (line 3695) 13898* BFD_RELOC_TILEGX_IMM8_Y1: howto manager. (line 3610) 13899* BFD_RELOC_TILEGX_IMM8_Y1_TLS_ADD: howto manager. (line 3701) 13900* BFD_RELOC_TILEGX_IMM8_Y1_TLS_GD_ADD: howto manager. (line 3696) 13901* BFD_RELOC_TILEGX_JMP_SLOT: howto manager. (line 3602) 13902* BFD_RELOC_TILEGX_JUMPOFF_X1: howto manager. (line 3605) 13903* BFD_RELOC_TILEGX_JUMPOFF_X1_PLT: howto manager. (line 3606) 13904* BFD_RELOC_TILEGX_MF_IMM14_X1: howto manager. (line 3613) 13905* BFD_RELOC_TILEGX_MMEND_X0: howto manager. (line 3615) 13906* BFD_RELOC_TILEGX_MMSTART_X0: howto manager. (line 3614) 13907* BFD_RELOC_TILEGX_MT_IMM14_X1: howto manager. (line 3612) 13908* BFD_RELOC_TILEGX_RELATIVE: howto manager. (line 3603) 13909* BFD_RELOC_TILEGX_SHAMT_X0: howto manager. (line 3616) 13910* BFD_RELOC_TILEGX_SHAMT_X1: howto manager. (line 3617) 13911* BFD_RELOC_TILEGX_SHAMT_Y0: howto manager. (line 3618) 13912* BFD_RELOC_TILEGX_SHAMT_Y1: howto manager. (line 3619) 13913* BFD_RELOC_TILEGX_TLS_DTPMOD32: howto manager. (line 3689) 13914* BFD_RELOC_TILEGX_TLS_DTPMOD64: howto manager. (line 3686) 13915* BFD_RELOC_TILEGX_TLS_DTPOFF32: howto manager. (line 3690) 13916* BFD_RELOC_TILEGX_TLS_DTPOFF64: howto manager. (line 3687) 13917* BFD_RELOC_TILEGX_TLS_GD_CALL: howto manager. (line 3692) 13918* BFD_RELOC_TILEGX_TLS_IE_LOAD: howto manager. (line 3697) 13919* BFD_RELOC_TILEGX_TLS_TPOFF32: howto manager. (line 3691) 13920* BFD_RELOC_TILEGX_TLS_TPOFF64: howto manager. (line 3688) 13921* BFD_RELOC_TILEPRO_BROFF_X1: howto manager. (line 3516) 13922* BFD_RELOC_TILEPRO_COPY: howto manager. (line 3512) 13923* BFD_RELOC_TILEPRO_DEST_IMM8_X1: howto manager. (line 3523) 13924* BFD_RELOC_TILEPRO_GLOB_DAT: howto manager. (line 3513) 13925* BFD_RELOC_TILEPRO_IMM16_X0: howto manager. (line 3526) 13926* BFD_RELOC_TILEPRO_IMM16_X0_GOT: howto manager. (line 3542) 13927* BFD_RELOC_TILEPRO_IMM16_X0_GOT_HA: howto manager. (line 3548) 13928* BFD_RELOC_TILEPRO_IMM16_X0_GOT_HI: howto manager. (line 3546) 13929* BFD_RELOC_TILEPRO_IMM16_X0_GOT_LO: howto manager. (line 3544) 13930* BFD_RELOC_TILEPRO_IMM16_X0_HA: howto manager. (line 3532) 13931* BFD_RELOC_TILEPRO_IMM16_X0_HA_PCREL: howto manager. (line 3540) 13932* BFD_RELOC_TILEPRO_IMM16_X0_HI: howto manager. (line 3530) 13933* BFD_RELOC_TILEPRO_IMM16_X0_HI_PCREL: howto manager. (line 3538) 13934* BFD_RELOC_TILEPRO_IMM16_X0_LO: howto manager. (line 3528) 13935* BFD_RELOC_TILEPRO_IMM16_X0_LO_PCREL: howto manager. (line 3536) 13936* BFD_RELOC_TILEPRO_IMM16_X0_PCREL: howto manager. (line 3534) 13937* BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD: howto manager. (line 3564) 13938* BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HA: howto manager. (line 3570) 13939* BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HI: howto manager. (line 3568) 13940* BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_LO: howto manager. (line 3566) 13941* BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE: howto manager. (line 3572) 13942* BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HA: howto manager. (line 3578) 13943* BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HI: howto manager. (line 3576) 13944* BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_LO: howto manager. (line 3574) 13945* BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE: howto manager. (line 3583) 13946* BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HA: howto manager. (line 3589) 13947* BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HI: howto manager. (line 3587) 13948* BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_LO: howto manager. (line 3585) 13949* BFD_RELOC_TILEPRO_IMM16_X1: howto manager. (line 3527) 13950* BFD_RELOC_TILEPRO_IMM16_X1_GOT: howto manager. (line 3543) 13951* BFD_RELOC_TILEPRO_IMM16_X1_GOT_HA: howto manager. (line 3549) 13952* BFD_RELOC_TILEPRO_IMM16_X1_GOT_HI: howto manager. (line 3547) 13953* BFD_RELOC_TILEPRO_IMM16_X1_GOT_LO: howto manager. (line 3545) 13954* BFD_RELOC_TILEPRO_IMM16_X1_HA: howto manager. (line 3533) 13955* BFD_RELOC_TILEPRO_IMM16_X1_HA_PCREL: howto manager. (line 3541) 13956* BFD_RELOC_TILEPRO_IMM16_X1_HI: howto manager. (line 3531) 13957* BFD_RELOC_TILEPRO_IMM16_X1_HI_PCREL: howto manager. (line 3539) 13958* BFD_RELOC_TILEPRO_IMM16_X1_LO: howto manager. (line 3529) 13959* BFD_RELOC_TILEPRO_IMM16_X1_LO_PCREL: howto manager. (line 3537) 13960* BFD_RELOC_TILEPRO_IMM16_X1_PCREL: howto manager. (line 3535) 13961* BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD: howto manager. (line 3565) 13962* BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HA: howto manager. (line 3571) 13963* BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HI: howto manager. (line 3569) 13964* BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_LO: howto manager. (line 3567) 13965* BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE: howto manager. (line 3573) 13966* BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HA: howto manager. (line 3579) 13967* BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HI: howto manager. (line 3577) 13968* BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_LO: howto manager. (line 3575) 13969* BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE: howto manager. (line 3584) 13970* BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HA: howto manager. (line 3590) 13971* BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HI: howto manager. (line 3588) 13972* BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_LO: howto manager. (line 3586) 13973* BFD_RELOC_TILEPRO_IMM8_X0: howto manager. (line 3519) 13974* BFD_RELOC_TILEPRO_IMM8_X0_TLS_GD_ADD: howto manager. (line 3559) 13975* BFD_RELOC_TILEPRO_IMM8_X1: howto manager. (line 3521) 13976* BFD_RELOC_TILEPRO_IMM8_X1_TLS_GD_ADD: howto manager. (line 3560) 13977* BFD_RELOC_TILEPRO_IMM8_Y0: howto manager. (line 3520) 13978* BFD_RELOC_TILEPRO_IMM8_Y0_TLS_GD_ADD: howto manager. (line 3561) 13979* BFD_RELOC_TILEPRO_IMM8_Y1: howto manager. (line 3522) 13980* BFD_RELOC_TILEPRO_IMM8_Y1_TLS_GD_ADD: howto manager. (line 3562) 13981* BFD_RELOC_TILEPRO_JMP_SLOT: howto manager. (line 3514) 13982* BFD_RELOC_TILEPRO_JOFFLONG_X1: howto manager. (line 3517) 13983* BFD_RELOC_TILEPRO_JOFFLONG_X1_PLT: howto manager. (line 3518) 13984* BFD_RELOC_TILEPRO_MF_IMM15_X1: howto manager. (line 3525) 13985* BFD_RELOC_TILEPRO_MMEND_X0: howto manager. (line 3551) 13986* BFD_RELOC_TILEPRO_MMEND_X1: howto manager. (line 3553) 13987* BFD_RELOC_TILEPRO_MMSTART_X0: howto manager. (line 3550) 13988* BFD_RELOC_TILEPRO_MMSTART_X1: howto manager. (line 3552) 13989* BFD_RELOC_TILEPRO_MT_IMM15_X1: howto manager. (line 3524) 13990* BFD_RELOC_TILEPRO_RELATIVE: howto manager. (line 3515) 13991* BFD_RELOC_TILEPRO_SHAMT_X0: howto manager. (line 3554) 13992* BFD_RELOC_TILEPRO_SHAMT_X1: howto manager. (line 3555) 13993* BFD_RELOC_TILEPRO_SHAMT_Y0: howto manager. (line 3556) 13994* BFD_RELOC_TILEPRO_SHAMT_Y1: howto manager. (line 3557) 13995* BFD_RELOC_TILEPRO_TLS_DTPMOD32: howto manager. (line 3580) 13996* BFD_RELOC_TILEPRO_TLS_DTPOFF32: howto manager. (line 3581) 13997* BFD_RELOC_TILEPRO_TLS_GD_CALL: howto manager. (line 3558) 13998* BFD_RELOC_TILEPRO_TLS_IE_LOAD: howto manager. (line 3563) 13999* BFD_RELOC_TILEPRO_TLS_TPOFF32: howto manager. (line 3582) 14000* bfd_reloc_type_lookup: howto manager. (line 3736) 14001* BFD_RELOC_V850_16_GOT: howto manager. (line 1680) 14002* BFD_RELOC_V850_16_GOTOFF: howto manager. (line 1704) 14003* BFD_RELOC_V850_16_PCREL: howto manager. (line 1650) 14004* BFD_RELOC_V850_16_S1: howto manager. (line 1668) 14005* BFD_RELOC_V850_16_SPLIT_OFFSET: howto manager. (line 1665) 14006* BFD_RELOC_V850_17_PCREL: howto manager. (line 1653) 14007* BFD_RELOC_V850_22_PCREL: howto manager. (line 1585) 14008* BFD_RELOC_V850_22_PLT_PCREL: howto manager. (line 1686) 14009* BFD_RELOC_V850_23: howto manager. (line 1656) 14010* BFD_RELOC_V850_32_ABS: howto manager. (line 1662) 14011* BFD_RELOC_V850_32_GOT: howto manager. (line 1683) 14012* BFD_RELOC_V850_32_GOTOFF: howto manager. (line 1707) 14013* BFD_RELOC_V850_32_GOTPCREL: howto manager. (line 1677) 14014* BFD_RELOC_V850_32_PCREL: howto manager. (line 1659) 14015* BFD_RELOC_V850_32_PLT_PCREL: howto manager. (line 1689) 14016* BFD_RELOC_V850_9_PCREL: howto manager. (line 1582) 14017* BFD_RELOC_V850_ALIGN: howto manager. (line 1643) 14018* BFD_RELOC_V850_CALLT_15_16_OFFSET: howto manager. (line 1674) 14019* BFD_RELOC_V850_CALLT_16_16_OFFSET: howto manager. (line 1634) 14020* BFD_RELOC_V850_CALLT_6_7_OFFSET: howto manager. (line 1631) 14021* BFD_RELOC_V850_CODE: howto manager. (line 1710) 14022* BFD_RELOC_V850_COPY: howto manager. (line 1692) 14023* BFD_RELOC_V850_DATA: howto manager. (line 1713) 14024* BFD_RELOC_V850_GLOB_DAT: howto manager. (line 1695) 14025* BFD_RELOC_V850_JMP_SLOT: howto manager. (line 1698) 14026* BFD_RELOC_V850_LO16_S1: howto manager. (line 1671) 14027* BFD_RELOC_V850_LO16_SPLIT_OFFSET: howto manager. (line 1646) 14028* BFD_RELOC_V850_LONGCALL: howto manager. (line 1637) 14029* BFD_RELOC_V850_LONGJUMP: howto manager. (line 1640) 14030* BFD_RELOC_V850_RELATIVE: howto manager. (line 1701) 14031* BFD_RELOC_V850_SDA_15_16_OFFSET: howto manager. (line 1591) 14032* BFD_RELOC_V850_SDA_16_16_OFFSET: howto manager. (line 1588) 14033* BFD_RELOC_V850_SDA_16_16_SPLIT_OFFSET: howto manager. (line 1623) 14034* BFD_RELOC_V850_TDA_16_16_OFFSET: howto manager. (line 1613) 14035* BFD_RELOC_V850_TDA_4_4_OFFSET: howto manager. (line 1620) 14036* BFD_RELOC_V850_TDA_4_5_OFFSET: howto manager. (line 1616) 14037* BFD_RELOC_V850_TDA_6_8_OFFSET: howto manager. (line 1602) 14038* BFD_RELOC_V850_TDA_7_7_OFFSET: howto manager. (line 1610) 14039* BFD_RELOC_V850_TDA_7_8_OFFSET: howto manager. (line 1606) 14040* BFD_RELOC_V850_ZDA_15_16_OFFSET: howto manager. (line 1598) 14041* BFD_RELOC_V850_ZDA_16_16_OFFSET: howto manager. (line 1595) 14042* BFD_RELOC_V850_ZDA_16_16_SPLIT_OFFSET: howto manager. (line 1627) 14043* BFD_RELOC_VAX_GLOB_DAT: howto manager. (line 2756) 14044* BFD_RELOC_VAX_JMP_SLOT: howto manager. (line 2757) 14045* BFD_RELOC_VAX_RELATIVE: howto manager. (line 2758) 14046* BFD_RELOC_VISIUM_HI16: howto manager. (line 3726) 14047* BFD_RELOC_VISIUM_HI16_PCREL: howto manager. (line 3730) 14048* BFD_RELOC_VISIUM_IM16: howto manager. (line 3728) 14049* BFD_RELOC_VISIUM_IM16_PCREL: howto manager. (line 3732) 14050* BFD_RELOC_VISIUM_LO16: howto manager. (line 3727) 14051* BFD_RELOC_VISIUM_LO16_PCREL: howto manager. (line 3731) 14052* BFD_RELOC_VISIUM_REL16: howto manager. (line 3729) 14053* BFD_RELOC_VPE4KMATH_DATA: howto manager. (line 2310) 14054* BFD_RELOC_VPE4KMATH_INSN: howto manager. (line 2311) 14055* BFD_RELOC_VTABLE_ENTRY: howto manager. (line 2315) 14056* BFD_RELOC_VTABLE_INHERIT: howto manager. (line 2314) 14057* BFD_RELOC_X86_64_32S: howto manager. (line 624) 14058* BFD_RELOC_X86_64_COPY: howto manager. (line 619) 14059* BFD_RELOC_X86_64_DTPMOD64: howto manager. (line 625) 14060* BFD_RELOC_X86_64_DTPOFF32: howto manager. (line 630) 14061* BFD_RELOC_X86_64_DTPOFF64: howto manager. (line 626) 14062* BFD_RELOC_X86_64_GLOB_DAT: howto manager. (line 620) 14063* BFD_RELOC_X86_64_GOT32: howto manager. (line 617) 14064* BFD_RELOC_X86_64_GOT64: howto manager. (line 635) 14065* BFD_RELOC_X86_64_GOTOFF64: howto manager. (line 633) 14066* BFD_RELOC_X86_64_GOTPC32: howto manager. (line 634) 14067* BFD_RELOC_X86_64_GOTPC32_TLSDESC: howto manager. (line 640) 14068* BFD_RELOC_X86_64_GOTPC64: howto manager. (line 637) 14069* BFD_RELOC_X86_64_GOTPCREL: howto manager. (line 623) 14070* BFD_RELOC_X86_64_GOTPCREL64: howto manager. (line 636) 14071* BFD_RELOC_X86_64_GOTPCRELX: howto manager. (line 646) 14072* BFD_RELOC_X86_64_GOTPLT64: howto manager. (line 638) 14073* BFD_RELOC_X86_64_GOTTPOFF: howto manager. (line 631) 14074* BFD_RELOC_X86_64_IRELATIVE: howto manager. (line 643) 14075* BFD_RELOC_X86_64_JUMP_SLOT: howto manager. (line 621) 14076* BFD_RELOC_X86_64_PC32_BND: howto manager. (line 644) 14077* BFD_RELOC_X86_64_PLT32: howto manager. (line 618) 14078* BFD_RELOC_X86_64_PLT32_BND: howto manager. (line 645) 14079* BFD_RELOC_X86_64_PLTOFF64: howto manager. (line 639) 14080* BFD_RELOC_X86_64_RELATIVE: howto manager. (line 622) 14081* BFD_RELOC_X86_64_REX_GOTPCRELX: howto manager. (line 647) 14082* BFD_RELOC_X86_64_TLSDESC: howto manager. (line 642) 14083* BFD_RELOC_X86_64_TLSDESC_CALL: howto manager. (line 641) 14084* BFD_RELOC_X86_64_TLSGD: howto manager. (line 628) 14085* BFD_RELOC_X86_64_TLSLD: howto manager. (line 629) 14086* BFD_RELOC_X86_64_TPOFF32: howto manager. (line 632) 14087* BFD_RELOC_X86_64_TPOFF64: howto manager. (line 627) 14088* BFD_RELOC_XC16X_PAG: howto manager. (line 2750) 14089* BFD_RELOC_XC16X_POF: howto manager. (line 2751) 14090* BFD_RELOC_XC16X_SEG: howto manager. (line 2752) 14091* BFD_RELOC_XC16X_SOF: howto manager. (line 2753) 14092* BFD_RELOC_XGATE_24: howto manager. (line 2473) 14093* BFD_RELOC_XGATE_GPAGE: howto manager. (line 2470) 14094* BFD_RELOC_XGATE_IMM3: howto manager. (line 2490) 14095* BFD_RELOC_XGATE_IMM4: howto manager. (line 2493) 14096* BFD_RELOC_XGATE_IMM5: howto manager. (line 2496) 14097* BFD_RELOC_XGATE_IMM8_HI: howto manager. (line 2486) 14098* BFD_RELOC_XGATE_IMM8_LO: howto manager. (line 2482) 14099* BFD_RELOC_XGATE_LO16: howto manager. (line 2466) 14100* BFD_RELOC_XGATE_PCREL_10: howto manager. (line 2479) 14101* BFD_RELOC_XGATE_PCREL_9: howto manager. (line 2476) 14102* BFD_RELOC_XGATE_RL_GROUP: howto manager. (line 2461) 14103* BFD_RELOC_XGATE_RL_JUMP: howto manager. (line 2457) 14104* BFD_RELOC_XSTORMY16_12: howto manager. (line 2742) 14105* BFD_RELOC_XSTORMY16_24: howto manager. (line 2743) 14106* BFD_RELOC_XSTORMY16_FPTR16: howto manager. (line 2744) 14107* BFD_RELOC_XSTORMY16_REL_12: howto manager. (line 2741) 14108* BFD_RELOC_XTENSA_ASM_EXPAND: howto manager. (line 2931) 14109* BFD_RELOC_XTENSA_ASM_SIMPLIFY: howto manager. (line 2936) 14110* BFD_RELOC_XTENSA_DIFF16: howto manager. (line 2878) 14111* BFD_RELOC_XTENSA_DIFF32: howto manager. (line 2879) 14112* BFD_RELOC_XTENSA_DIFF8: howto manager. (line 2877) 14113* BFD_RELOC_XTENSA_GLOB_DAT: howto manager. (line 2867) 14114* BFD_RELOC_XTENSA_JMP_SLOT: howto manager. (line 2868) 14115* BFD_RELOC_XTENSA_OP0: howto manager. (line 2925) 14116* BFD_RELOC_XTENSA_OP1: howto manager. (line 2926) 14117* BFD_RELOC_XTENSA_OP2: howto manager. (line 2927) 14118* BFD_RELOC_XTENSA_PLT: howto manager. (line 2872) 14119* BFD_RELOC_XTENSA_RELATIVE: howto manager. (line 2869) 14120* BFD_RELOC_XTENSA_RTLD: howto manager. (line 2862) 14121* BFD_RELOC_XTENSA_SLOT0_ALT: howto manager. (line 2907) 14122* BFD_RELOC_XTENSA_SLOT0_OP: howto manager. (line 2887) 14123* BFD_RELOC_XTENSA_SLOT10_ALT: howto manager. (line 2917) 14124* BFD_RELOC_XTENSA_SLOT10_OP: howto manager. (line 2897) 14125* BFD_RELOC_XTENSA_SLOT11_ALT: howto manager. (line 2918) 14126* BFD_RELOC_XTENSA_SLOT11_OP: howto manager. (line 2898) 14127* BFD_RELOC_XTENSA_SLOT12_ALT: howto manager. (line 2919) 14128* BFD_RELOC_XTENSA_SLOT12_OP: howto manager. (line 2899) 14129* BFD_RELOC_XTENSA_SLOT13_ALT: howto manager. (line 2920) 14130* BFD_RELOC_XTENSA_SLOT13_OP: howto manager. (line 2900) 14131* BFD_RELOC_XTENSA_SLOT14_ALT: howto manager. (line 2921) 14132* BFD_RELOC_XTENSA_SLOT14_OP: howto manager. (line 2901) 14133* BFD_RELOC_XTENSA_SLOT1_ALT: howto manager. (line 2908) 14134* BFD_RELOC_XTENSA_SLOT1_OP: howto manager. (line 2888) 14135* BFD_RELOC_XTENSA_SLOT2_ALT: howto manager. (line 2909) 14136* BFD_RELOC_XTENSA_SLOT2_OP: howto manager. (line 2889) 14137* BFD_RELOC_XTENSA_SLOT3_ALT: howto manager. (line 2910) 14138* BFD_RELOC_XTENSA_SLOT3_OP: howto manager. (line 2890) 14139* BFD_RELOC_XTENSA_SLOT4_ALT: howto manager. (line 2911) 14140* BFD_RELOC_XTENSA_SLOT4_OP: howto manager. (line 2891) 14141* BFD_RELOC_XTENSA_SLOT5_ALT: howto manager. (line 2912) 14142* BFD_RELOC_XTENSA_SLOT5_OP: howto manager. (line 2892) 14143* BFD_RELOC_XTENSA_SLOT6_ALT: howto manager. (line 2913) 14144* BFD_RELOC_XTENSA_SLOT6_OP: howto manager. (line 2893) 14145* BFD_RELOC_XTENSA_SLOT7_ALT: howto manager. (line 2914) 14146* BFD_RELOC_XTENSA_SLOT7_OP: howto manager. (line 2894) 14147* BFD_RELOC_XTENSA_SLOT8_ALT: howto manager. (line 2915) 14148* BFD_RELOC_XTENSA_SLOT8_OP: howto manager. (line 2895) 14149* BFD_RELOC_XTENSA_SLOT9_ALT: howto manager. (line 2916) 14150* BFD_RELOC_XTENSA_SLOT9_OP: howto manager. (line 2896) 14151* BFD_RELOC_XTENSA_TLS_ARG: howto manager. (line 2946) 14152* BFD_RELOC_XTENSA_TLS_CALL: howto manager. (line 2947) 14153* BFD_RELOC_XTENSA_TLS_DTPOFF: howto manager. (line 2943) 14154* BFD_RELOC_XTENSA_TLS_FUNC: howto manager. (line 2945) 14155* BFD_RELOC_XTENSA_TLS_TPOFF: howto manager. (line 2944) 14156* BFD_RELOC_XTENSA_TLSDESC_ARG: howto manager. (line 2942) 14157* BFD_RELOC_XTENSA_TLSDESC_FN: howto manager. (line 2941) 14158* BFD_RELOC_Z80_DISP8: howto manager. (line 2950) 14159* BFD_RELOC_Z8K_CALLR: howto manager. (line 2956) 14160* BFD_RELOC_Z8K_DISP7: howto manager. (line 2953) 14161* BFD_RELOC_Z8K_IMM4L: howto manager. (line 2959) 14162* bfd_rename_section: section prototypes. (line 179) 14163* bfd_scan_arch: Architectures. (line 543) 14164* bfd_scan_vma: Miscellaneous. (line 126) 14165* bfd_seach_for_target: bfd_target. (line 526) 14166* bfd_section_already_linked: Writing the symbol table. 14167 (line 55) 14168* bfd_section_list_clear: section prototypes. (line 8) 14169* bfd_sections_find_if: section prototypes. (line 209) 14170* bfd_set_arch_info: Architectures. (line 584) 14171* bfd_set_archive_head: Archives. (line 75) 14172* bfd_set_assert_handler: Error reporting. (line 141) 14173* bfd_set_default_target: bfd_target. (line 465) 14174* bfd_set_error: Error reporting. (line 57) 14175* bfd_set_error_handler: Error reporting. (line 99) 14176* bfd_set_error_program_name: Error reporting. (line 108) 14177* bfd_set_file_flags: Miscellaneous. (line 44) 14178* bfd_set_format: Formats. (line 68) 14179* bfd_set_gp_size: Miscellaneous. (line 116) 14180* bfd_set_private_flags: Miscellaneous. (line 193) 14181* bfd_set_reloc: Miscellaneous. (line 34) 14182* bfd_set_section_contents: section prototypes. (line 240) 14183* bfd_set_section_flags: section prototypes. (line 164) 14184* bfd_set_section_size: section prototypes. (line 226) 14185* bfd_set_start_address: Miscellaneous. (line 95) 14186* bfd_set_symtab: symbol handling functions. 14187 (line 60) 14188* bfd_symbol_info: symbol handling functions. 14189 (line 130) 14190* bfd_target_list: bfd_target. (line 517) 14191* bfd_update_compression_header: Miscellaneous. (line 369) 14192* bfd_write_bigendian_4byte_int: Internal. (line 13) 14193* bfd_zalloc: Opening and Closing. 14194 (line 257) 14195* bfd_zalloc2: Opening and Closing. 14196 (line 266) 14197* coff_symbol_type: coff. (line 245) 14198* core_file_matches_executable_p: Core Files. (line 39) 14199* find_separate_debug_file: Opening and Closing. 14200 (line 332) 14201* generic_core_file_matches_executable_p: Core Files. (line 49) 14202* Hash tables: Hash Tables. (line 6) 14203* internal object-file format: Canonical format. (line 11) 14204* Linker: Linker Functions. (line 6) 14205* Other functions: Miscellaneous. (line 208) 14206* separate_alt_debug_file_exists: Opening and Closing. 14207 (line 323) 14208* separate_debug_file_exists: Opening and Closing. 14209 (line 314) 14210* struct bfd_iovec: Miscellaneous. (line 428) 14211* target vector (_bfd_final_link): Performing the Final Link. 14212 (line 6) 14213* target vector (_bfd_link_add_symbols): Adding Symbols to the Hash Table. 14214 (line 6) 14215* target vector (_bfd_link_hash_table_create): Creating a Linker Hash Table. 14216 (line 6) 14217* The HOWTO Macro: typedef arelent. (line 288) 14218* what is it?: Overview. (line 6) 14219 14220 14221 14222Tag Table: 14223Node: Top1058 14224Node: Overview1397 14225Node: History2448 14226Node: How It Works3394 14227Node: What BFD Version 2 Can Do4937 14228Node: BFD information loss6252 14229Node: Canonical format8784 14230Node: BFD front end13156 14231Node: typedef bfd13580 14232Node: Error reporting25883 14233Node: Miscellaneous30750 14234Node: Memory Usage49804 14235Node: Initialization51032 14236Node: Sections51491 14237Node: Section Input51974 14238Node: Section Output53339 14239Node: typedef asection55825 14240Node: section prototypes82572 14241Node: Symbols93169 14242Node: Reading Symbols94764 14243Node: Writing Symbols95871 14244Node: Mini Symbols97612 14245Node: typedef asymbol98586 14246Node: symbol handling functions104657 14247Node: Archives109999 14248Node: Formats114028 14249Node: Relocations116976 14250Node: typedef arelent117703 14251Node: howto manager133339 14252Node: Core Files255348 14253Node: Targets257386 14254Node: bfd_target259356 14255Node: Architectures282873 14256Node: Opening and Closing312119 14257Node: Internal326441 14258Node: File Caching332786 14259Node: Linker Functions334700 14260Node: Creating a Linker Hash Table336373 14261Node: Adding Symbols to the Hash Table338111 14262Node: Differing file formats339011 14263Node: Adding symbols from an object file340736 14264Node: Adding symbols from an archive342887 14265Node: Performing the Final Link345233 14266Node: Information provided by the linker346475 14267Node: Relocating the section contents347629 14268Node: Writing the symbol table349380 14269Node: Hash Tables354493 14270Node: Creating and Freeing a Hash Table355691 14271Node: Looking Up or Entering a String356941 14272Node: Traversing a Hash Table358194 14273Node: Deriving a New Hash Table Type358983 14274Node: Define the Derived Structures360049 14275Node: Write the Derived Creation Routine361130 14276Node: Write Other Derived Routines363754 14277Node: BFD back ends365069 14278Node: What to Put Where365339 14279Node: aout365519 14280Node: coff371857 14281Node: elf400690 14282Node: mmo401091 14283Node: File layout401964 14284Node: Symbol-table407891 14285Node: mmo section mapping411655 14286Node: GNU Free Documentation License415307 14287Node: BFD Index440390 14288 14289End Tag Table 14290