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-2017 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 vprintf. 760 761 762 typedef void (*bfd_error_handler_type) (const char *, va_list); 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.3 BFD assert handler 783------------------------ 784 785If BFD finds an internal inconsistency, the bfd assert handler is 786called with information on the BFD version, BFD source file and line. 787If this happens, most programs linked against BFD are expected to want 788to exit with an error, or mark the current BFD operation as failed, so 789it is recommended to override the default handler, which just calls 790_bfd_error_handler and continues. 791 792 793 typedef void (*bfd_assert_handler_type) (const char *bfd_formatmsg, 794 const char *bfd_version, 795 const char *bfd_file, 796 int bfd_line); 797 7982.2.3.1 `bfd_set_assert_handler' 799................................ 800 801*Synopsis* 802 bfd_assert_handler_type bfd_set_assert_handler (bfd_assert_handler_type); 803 *Description* 804Set the BFD assert handler function. Returns the previous function. 805 806 807File: bfd.info, Node: Miscellaneous, Next: Memory Usage, Prev: Error reporting, Up: BFD front end 808 8092.3 Miscellaneous 810================= 811 8122.3.1 Miscellaneous functions 813----------------------------- 814 8152.3.1.1 `bfd_get_reloc_upper_bound' 816................................... 817 818*Synopsis* 819 long bfd_get_reloc_upper_bound (bfd *abfd, asection *sect); 820 *Description* 821Return the number of bytes required to store the relocation information 822associated with section SECT attached to bfd ABFD. If an error occurs, 823return -1. 824 8252.3.1.2 `bfd_canonicalize_reloc' 826................................ 827 828*Synopsis* 829 long bfd_canonicalize_reloc 830 (bfd *abfd, asection *sec, arelent **loc, asymbol **syms); 831 *Description* 832Call the back end associated with the open BFD ABFD and translate the 833external form of the relocation information attached to SEC into the 834internal canonical form. Place the table into memory at LOC, which has 835been preallocated, usually by a call to `bfd_get_reloc_upper_bound'. 836Returns the number of relocs, or -1 on error. 837 838 The SYMS table is also needed for horrible internal magic reasons. 839 8402.3.1.3 `bfd_set_reloc' 841....................... 842 843*Synopsis* 844 void bfd_set_reloc 845 (bfd *abfd, asection *sec, arelent **rel, unsigned int count); 846 *Description* 847Set the relocation pointer and count within section SEC to the values 848REL and COUNT. The argument ABFD is ignored. 849 8502.3.1.4 `bfd_set_file_flags' 851............................ 852 853*Synopsis* 854 bfd_boolean bfd_set_file_flags (bfd *abfd, flagword flags); 855 *Description* 856Set the flag word in the BFD ABFD to the value FLAGS. 857 858 Possible errors are: 859 * `bfd_error_wrong_format' - The target bfd was not of object format. 860 861 * `bfd_error_invalid_operation' - The target bfd was open for 862 reading. 863 864 * `bfd_error_invalid_operation' - The flag word contained a bit 865 which was not applicable to the type of file. E.g., an attempt 866 was made to set the `D_PAGED' bit on a BFD format which does not 867 support demand paging. 868 8692.3.1.5 `bfd_get_arch_size' 870........................... 871 872*Synopsis* 873 int bfd_get_arch_size (bfd *abfd); 874 *Description* 875Returns the normalized architecture address size, in bits, as 876determined by the object file's format. By normalized, we mean either 87732 or 64. For ELF, this information is included in the header. Use 878bfd_arch_bits_per_address for number of bits in the architecture 879address. 880 881 *Returns* 882Returns the arch size in bits if known, `-1' otherwise. 883 8842.3.1.6 `bfd_get_sign_extend_vma' 885................................. 886 887*Synopsis* 888 int bfd_get_sign_extend_vma (bfd *abfd); 889 *Description* 890Indicates if the target architecture "naturally" sign extends an 891address. Some architectures implicitly sign extend address values when 892they are converted to types larger than the size of an address. For 893instance, bfd_get_start_address() will return an address sign extended 894to fill a bfd_vma when this is the case. 895 896 *Returns* 897Returns `1' if the target architecture is known to sign extend 898addresses, `0' if the target architecture is known to not sign extend 899addresses, and `-1' otherwise. 900 9012.3.1.7 `bfd_set_start_address' 902............................... 903 904*Synopsis* 905 bfd_boolean bfd_set_start_address (bfd *abfd, bfd_vma vma); 906 *Description* 907Make VMA the entry point of output BFD ABFD. 908 909 *Returns* 910Returns `TRUE' on success, `FALSE' otherwise. 911 9122.3.1.8 `bfd_get_gp_size' 913......................... 914 915*Synopsis* 916 unsigned int bfd_get_gp_size (bfd *abfd); 917 *Description* 918Return the maximum size of objects to be optimized using the GP 919register under MIPS ECOFF. This is typically set by the `-G' argument 920to the compiler, assembler or linker. 921 9222.3.1.9 `bfd_set_gp_size' 923......................... 924 925*Synopsis* 926 void bfd_set_gp_size (bfd *abfd, unsigned int i); 927 *Description* 928Set the maximum size of objects to be optimized using the GP register 929under ECOFF or MIPS ELF. This is typically set by the `-G' argument to 930the compiler, assembler or linker. 931 9322.3.1.10 `bfd_scan_vma' 933....................... 934 935*Synopsis* 936 bfd_vma bfd_scan_vma (const char *string, const char **end, int base); 937 *Description* 938Convert, like `strtoul', a numerical expression STRING into a `bfd_vma' 939integer, and return that integer. (Though without as many bells and 940whistles as `strtoul'.) The expression is assumed to be unsigned 941(i.e., positive). If given a BASE, it is used as the base for 942conversion. A base of 0 causes the function to interpret the string in 943hex if a leading "0x" or "0X" is found, otherwise in octal if a leading 944zero is found, otherwise in decimal. 945 946 If the value would overflow, the maximum `bfd_vma' value is returned. 947 9482.3.1.11 `bfd_copy_private_header_data' 949....................................... 950 951*Synopsis* 952 bfd_boolean bfd_copy_private_header_data (bfd *ibfd, bfd *obfd); 953 *Description* 954Copy private BFD header information from the BFD IBFD to the the BFD 955OBFD. This copies information that may require sections to exist, but 956does not require symbol tables. Return `true' on success, `false' on 957error. Possible error returns are: 958 959 * `bfd_error_no_memory' - Not enough memory exists to create private 960 data for OBFD. 961 962 #define bfd_copy_private_header_data(ibfd, obfd) \ 963 BFD_SEND (obfd, _bfd_copy_private_header_data, \ 964 (ibfd, obfd)) 965 9662.3.1.12 `bfd_copy_private_bfd_data' 967.................................... 968 969*Synopsis* 970 bfd_boolean bfd_copy_private_bfd_data (bfd *ibfd, bfd *obfd); 971 *Description* 972Copy private BFD information from the BFD IBFD to the the BFD OBFD. 973Return `TRUE' on success, `FALSE' on error. 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_bfd_data(ibfd, obfd) \ 979 BFD_SEND (obfd, _bfd_copy_private_bfd_data, \ 980 (ibfd, obfd)) 981 9822.3.1.13 `bfd_set_private_flags' 983................................ 984 985*Synopsis* 986 bfd_boolean bfd_set_private_flags (bfd *abfd, flagword flags); 987 *Description* 988Set private BFD flag information in the BFD ABFD. Return `TRUE' on 989success, `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_set_private_flags(abfd, flags) \ 995 BFD_SEND (abfd, _bfd_set_private_flags, (abfd, flags)) 996 9972.3.1.14 `Other functions' 998.......................... 999 1000*Description* 1001The following functions exist but have not yet been documented. 1002 #define bfd_sizeof_headers(abfd, info) \ 1003 BFD_SEND (abfd, _bfd_sizeof_headers, (abfd, info)) 1004 1005 #define bfd_find_nearest_line(abfd, sec, syms, off, file, func, line) \ 1006 BFD_SEND (abfd, _bfd_find_nearest_line, \ 1007 (abfd, syms, sec, off, file, func, line, NULL)) 1008 1009 #define bfd_find_nearest_line_discriminator(abfd, sec, syms, off, file, func, \ 1010 line, disc) \ 1011 BFD_SEND (abfd, _bfd_find_nearest_line, \ 1012 (abfd, syms, sec, off, file, func, line, disc)) 1013 1014 #define bfd_find_line(abfd, syms, sym, file, line) \ 1015 BFD_SEND (abfd, _bfd_find_line, \ 1016 (abfd, syms, sym, file, line)) 1017 1018 #define bfd_find_inliner_info(abfd, file, func, line) \ 1019 BFD_SEND (abfd, _bfd_find_inliner_info, \ 1020 (abfd, file, func, line)) 1021 1022 #define bfd_debug_info_start(abfd) \ 1023 BFD_SEND (abfd, _bfd_debug_info_start, (abfd)) 1024 1025 #define bfd_debug_info_end(abfd) \ 1026 BFD_SEND (abfd, _bfd_debug_info_end, (abfd)) 1027 1028 #define bfd_debug_info_accumulate(abfd, section) \ 1029 BFD_SEND (abfd, _bfd_debug_info_accumulate, (abfd, section)) 1030 1031 #define bfd_stat_arch_elt(abfd, stat) \ 1032 BFD_SEND (abfd, _bfd_stat_arch_elt,(abfd, stat)) 1033 1034 #define bfd_update_armap_timestamp(abfd) \ 1035 BFD_SEND (abfd, _bfd_update_armap_timestamp, (abfd)) 1036 1037 #define bfd_set_arch_mach(abfd, arch, mach)\ 1038 BFD_SEND ( abfd, _bfd_set_arch_mach, (abfd, arch, mach)) 1039 1040 #define bfd_relax_section(abfd, section, link_info, again) \ 1041 BFD_SEND (abfd, _bfd_relax_section, (abfd, section, link_info, again)) 1042 1043 #define bfd_gc_sections(abfd, link_info) \ 1044 BFD_SEND (abfd, _bfd_gc_sections, (abfd, link_info)) 1045 1046 #define bfd_lookup_section_flags(link_info, flag_info, section) \ 1047 BFD_SEND (abfd, _bfd_lookup_section_flags, (link_info, flag_info, section)) 1048 1049 #define bfd_merge_sections(abfd, link_info) \ 1050 BFD_SEND (abfd, _bfd_merge_sections, (abfd, link_info)) 1051 1052 #define bfd_is_group_section(abfd, sec) \ 1053 BFD_SEND (abfd, _bfd_is_group_section, (abfd, sec)) 1054 1055 #define bfd_discard_group(abfd, sec) \ 1056 BFD_SEND (abfd, _bfd_discard_group, (abfd, sec)) 1057 1058 #define bfd_link_hash_table_create(abfd) \ 1059 BFD_SEND (abfd, _bfd_link_hash_table_create, (abfd)) 1060 1061 #define bfd_link_add_symbols(abfd, info) \ 1062 BFD_SEND (abfd, _bfd_link_add_symbols, (abfd, info)) 1063 1064 #define bfd_link_just_syms(abfd, sec, info) \ 1065 BFD_SEND (abfd, _bfd_link_just_syms, (sec, info)) 1066 1067 #define bfd_final_link(abfd, info) \ 1068 BFD_SEND (abfd, _bfd_final_link, (abfd, info)) 1069 1070 #define bfd_free_cached_info(abfd) \ 1071 BFD_SEND (abfd, _bfd_free_cached_info, (abfd)) 1072 1073 #define bfd_get_dynamic_symtab_upper_bound(abfd) \ 1074 BFD_SEND (abfd, _bfd_get_dynamic_symtab_upper_bound, (abfd)) 1075 1076 #define bfd_print_private_bfd_data(abfd, file)\ 1077 BFD_SEND (abfd, _bfd_print_private_bfd_data, (abfd, file)) 1078 1079 #define bfd_canonicalize_dynamic_symtab(abfd, asymbols) \ 1080 BFD_SEND (abfd, _bfd_canonicalize_dynamic_symtab, (abfd, asymbols)) 1081 1082 #define bfd_get_synthetic_symtab(abfd, count, syms, dyncount, dynsyms, ret) \ 1083 BFD_SEND (abfd, _bfd_get_synthetic_symtab, (abfd, count, syms, \ 1084 dyncount, dynsyms, ret)) 1085 1086 #define bfd_get_dynamic_reloc_upper_bound(abfd) \ 1087 BFD_SEND (abfd, _bfd_get_dynamic_reloc_upper_bound, (abfd)) 1088 1089 #define bfd_canonicalize_dynamic_reloc(abfd, arels, asyms) \ 1090 BFD_SEND (abfd, _bfd_canonicalize_dynamic_reloc, (abfd, arels, asyms)) 1091 1092 extern bfd_byte *bfd_get_relocated_section_contents 1093 (bfd *, struct bfd_link_info *, struct bfd_link_order *, bfd_byte *, 1094 bfd_boolean, asymbol **); 1095 10962.3.1.15 `bfd_alt_mach_code' 1097............................ 1098 1099*Synopsis* 1100 bfd_boolean bfd_alt_mach_code (bfd *abfd, int alternative); 1101 *Description* 1102When more than one machine code number is available for the same 1103machine type, this function can be used to switch between the preferred 1104one (alternative == 0) and any others. Currently, only ELF supports 1105this feature, with up to two alternate machine codes. 1106 11072.3.1.16 `bfd_emul_get_maxpagesize' 1108................................... 1109 1110*Synopsis* 1111 bfd_vma bfd_emul_get_maxpagesize (const char *); 1112 *Description* 1113Returns the maximum page size, in bytes, as determined by emulation. 1114 1115 *Returns* 1116Returns the maximum page size in bytes for ELF, 0 otherwise. 1117 11182.3.1.17 `bfd_emul_set_maxpagesize' 1119................................... 1120 1121*Synopsis* 1122 void bfd_emul_set_maxpagesize (const char *, bfd_vma); 1123 *Description* 1124For ELF, set the maximum page size for the emulation. It is a no-op 1125for other formats. 1126 11272.3.1.18 `bfd_emul_get_commonpagesize' 1128...................................... 1129 1130*Synopsis* 1131 bfd_vma bfd_emul_get_commonpagesize (const char *); 1132 *Description* 1133Returns the common page size, in bytes, as determined by emulation. 1134 1135 *Returns* 1136Returns the common page size in bytes for ELF, 0 otherwise. 1137 11382.3.1.19 `bfd_emul_set_commonpagesize' 1139...................................... 1140 1141*Synopsis* 1142 void bfd_emul_set_commonpagesize (const char *, bfd_vma); 1143 *Description* 1144For ELF, set the common page size for the emulation. It is a no-op for 1145other formats. 1146 11472.3.1.20 `bfd_demangle' 1148....................... 1149 1150*Synopsis* 1151 char *bfd_demangle (bfd *, const char *, int); 1152 *Description* 1153Wrapper around cplus_demangle. Strips leading underscores and other 1154such chars that would otherwise confuse the demangler. If passed a g++ 1155v3 ABI mangled name, returns a buffer allocated with malloc holding the 1156demangled name. Returns NULL otherwise and on memory alloc failure. 1157 11582.3.1.21 `bfd_update_compression_header' 1159........................................ 1160 1161*Synopsis* 1162 void bfd_update_compression_header 1163 (bfd *abfd, bfd_byte *contents, asection *sec); 1164 *Description* 1165Set the compression header at CONTENTS of SEC in ABFD and update 1166elf_section_flags for compression. 1167 11682.3.1.22 `bfd_check_compression_header' 1169....................................... 1170 1171*Synopsis* 1172 bfd_boolean bfd_check_compression_header 1173 (bfd *abfd, bfd_byte *contents, asection *sec, 1174 bfd_size_type *uncompressed_size); 1175 *Description* 1176Check the compression header at CONTENTS of SEC in ABFD and store the 1177uncompressed size in UNCOMPRESSED_SIZE if the compression header is 1178valid. 1179 1180 *Returns* 1181Return TRUE if the compression header is valid. 1182 11832.3.1.23 `bfd_get_compression_header_size' 1184.......................................... 1185 1186*Synopsis* 1187 int bfd_get_compression_header_size (bfd *abfd, asection *sec); 1188 *Description* 1189Return the size of the compression header of SEC in ABFD. 1190 1191 *Returns* 1192Return the size of the compression header in bytes. 1193 11942.3.1.24 `bfd_convert_section_size' 1195................................... 1196 1197*Synopsis* 1198 bfd_size_type bfd_convert_section_size 1199 (bfd *ibfd, asection *isec, bfd *obfd, bfd_size_type size); 1200 *Description* 1201Convert the size SIZE of the section ISEC in input BFD IBFD to the 1202section size in output BFD OBFD. 1203 12042.3.1.25 `bfd_convert_section_contents' 1205....................................... 1206 1207*Synopsis* 1208 bfd_boolean bfd_convert_section_contents 1209 (bfd *ibfd, asection *isec, bfd *obfd, 1210 bfd_byte **ptr, bfd_size_type *ptr_size); 1211 *Description* 1212Convert the contents, stored in *PTR, of the section ISEC in input BFD 1213IBFD to output BFD OBFD if needed. The original buffer pointed to by 1214*PTR may be freed and *PTR is returned with memory malloc'd by this 1215function, and the new size written to PTR_SIZE. 1216 12172.3.1.26 `struct bfd_iovec' 1218........................... 1219 1220*Description* 1221The `struct bfd_iovec' contains the internal file I/O class. Each 1222`BFD' has an instance of this class and all file I/O is routed through 1223it (it is assumed that the instance implements all methods listed 1224below). 1225 struct bfd_iovec 1226 { 1227 /* To avoid problems with macros, a "b" rather than "f" 1228 prefix is prepended to each method name. */ 1229 /* Attempt to read/write NBYTES on ABFD's IOSTREAM storing/fetching 1230 bytes starting at PTR. Return the number of bytes actually 1231 transfered (a read past end-of-file returns less than NBYTES), 1232 or -1 (setting `bfd_error') if an error occurs. */ 1233 file_ptr (*bread) (struct bfd *abfd, void *ptr, file_ptr nbytes); 1234 file_ptr (*bwrite) (struct bfd *abfd, const void *ptr, 1235 file_ptr nbytes); 1236 /* Return the current IOSTREAM file offset, or -1 (setting `bfd_error' 1237 if an error occurs. */ 1238 file_ptr (*btell) (struct bfd *abfd); 1239 /* For the following, on successful completion a value of 0 is returned. 1240 Otherwise, a value of -1 is returned (and `bfd_error' is set). */ 1241 int (*bseek) (struct bfd *abfd, file_ptr offset, int whence); 1242 int (*bclose) (struct bfd *abfd); 1243 int (*bflush) (struct bfd *abfd); 1244 int (*bstat) (struct bfd *abfd, struct stat *sb); 1245 /* Mmap a part of the files. ADDR, LEN, PROT, FLAGS and OFFSET are the usual 1246 mmap parameter, except that LEN and OFFSET do not need to be page 1247 aligned. Returns (void *)-1 on failure, mmapped address on success. 1248 Also write in MAP_ADDR the address of the page aligned buffer and in 1249 MAP_LEN the size mapped (a page multiple). Use unmap with MAP_ADDR and 1250 MAP_LEN to unmap. */ 1251 void *(*bmmap) (struct bfd *abfd, void *addr, bfd_size_type len, 1252 int prot, int flags, file_ptr offset, 1253 void **map_addr, bfd_size_type *map_len); 1254 }; 1255 extern const struct bfd_iovec _bfd_memory_iovec; 1256 12572.3.1.27 `bfd_get_mtime' 1258........................ 1259 1260*Synopsis* 1261 long bfd_get_mtime (bfd *abfd); 1262 *Description* 1263Return the file modification time (as read from the file system, or 1264from the archive header for archive members). 1265 12662.3.1.28 `bfd_get_size' 1267....................... 1268 1269*Synopsis* 1270 file_ptr bfd_get_size (bfd *abfd); 1271 *Description* 1272Return the file size (as read from file system) for the file associated 1273with BFD ABFD. 1274 1275 The initial motivation for, and use of, this routine is not so we 1276can get the exact size of the object the BFD applies to, since that 1277might not be generally possible (archive members for example). It 1278would be ideal if someone could eventually modify it so that such 1279results were guaranteed. 1280 1281 Instead, we want to ask questions like "is this NNN byte sized 1282object I'm about to try read from file offset YYY reasonable?" As as 1283example of where we might do this, some object formats use string 1284tables for which the first `sizeof (long)' bytes of the table contain 1285the size of the table itself, including the size bytes. If an 1286application tries to read what it thinks is one of these string tables, 1287without some way to validate the size, and for some reason the size is 1288wrong (byte swapping error, wrong location for the string table, etc.), 1289the only clue is likely to be a read error when it tries to read the 1290table, or a "virtual memory exhausted" error when it tries to allocate 129115 bazillon bytes of space for the 15 bazillon byte table it is about 1292to read. This function at least allows us to answer the question, "is 1293the size reasonable?". 1294 12952.3.1.29 `bfd_mmap' 1296................... 1297 1298*Synopsis* 1299 void *bfd_mmap (bfd *abfd, void *addr, bfd_size_type len, 1300 int prot, int flags, file_ptr offset, 1301 void **map_addr, bfd_size_type *map_len); 1302 *Description* 1303Return mmap()ed region of the file, if possible and implemented. LEN 1304and OFFSET do not need to be page aligned. The page aligned address 1305and length are written to MAP_ADDR and MAP_LEN. 1306 1307 1308File: bfd.info, Node: Memory Usage, Next: Initialization, Prev: Miscellaneous, Up: BFD front end 1309 13102.4 Memory Usage 1311================ 1312 1313BFD keeps all of its internal structures in obstacks. There is one 1314obstack per open BFD file, into which the current state is stored. When 1315a BFD is closed, the obstack is deleted, and so everything which has 1316been allocated by BFD for the closing file is thrown away. 1317 1318 BFD does not free anything created by an application, but pointers 1319into `bfd' structures become invalid on a `bfd_close'; for example, 1320after a `bfd_close' the vector passed to `bfd_canonicalize_symtab' is 1321still around, since it has been allocated by the application, but the 1322data that it pointed to are lost. 1323 1324 The general rule is to not close a BFD until all operations dependent 1325upon data from the BFD have been completed, or all the data from within 1326the file has been copied. To help with the management of memory, there 1327is a function (`bfd_alloc_size') which returns the number of bytes in 1328obstacks associated with the supplied BFD. This could be used to select 1329the greediest open BFD, close it to reclaim the memory, perform some 1330operation and reopen the BFD again, to get a fresh copy of the data 1331structures. 1332 1333 1334File: bfd.info, Node: Initialization, Next: Sections, Prev: Memory Usage, Up: BFD front end 1335 13362.5 Initialization 1337================== 1338 13392.5.1 Initialization functions 1340------------------------------ 1341 1342These are the functions that handle initializing a BFD. 1343 13442.5.1.1 `bfd_init' 1345.................. 1346 1347*Synopsis* 1348 void bfd_init (void); 1349 *Description* 1350This routine must be called before any other BFD function to initialize 1351magical internal data structures. 1352 1353 1354File: bfd.info, Node: Sections, Next: Symbols, Prev: Initialization, Up: BFD front end 1355 13562.6 Sections 1357============ 1358 1359The raw data contained within a BFD is maintained through the section 1360abstraction. A single BFD may have any number of sections. It keeps 1361hold of them by pointing to the first; each one points to the next in 1362the list. 1363 1364 Sections are supported in BFD in `section.c'. 1365 1366* Menu: 1367 1368* Section Input:: 1369* Section Output:: 1370* typedef asection:: 1371* section prototypes:: 1372 1373 1374File: bfd.info, Node: Section Input, Next: Section Output, Prev: Sections, Up: Sections 1375 13762.6.1 Section input 1377------------------- 1378 1379When a BFD is opened for reading, the section structures are created 1380and attached to the BFD. 1381 1382 Each section has a name which describes the section in the outside 1383world--for example, `a.out' would contain at least three sections, 1384called `.text', `.data' and `.bss'. 1385 1386 Names need not be unique; for example a COFF file may have several 1387sections named `.data'. 1388 1389 Sometimes a BFD will contain more than the "natural" number of 1390sections. A back end may attach other sections containing constructor 1391data, or an application may add a section (using `bfd_make_section') to 1392the sections attached to an already open BFD. For example, the linker 1393creates an extra section `COMMON' for each input file's BFD to hold 1394information about common storage. 1395 1396 The raw data is not necessarily read in when the section descriptor 1397is created. Some targets may leave the data in place until a 1398`bfd_get_section_contents' call is made. Other back ends may read in 1399all the data at once. For example, an S-record file has to be read 1400once to determine the size of the data. An IEEE-695 file doesn't 1401contain raw data in sections, but data and relocation expressions 1402intermixed, so the data area has to be parsed to get out the data and 1403relocations. 1404 1405 1406File: bfd.info, Node: Section Output, Next: typedef asection, Prev: Section Input, Up: Sections 1407 14082.6.2 Section output 1409-------------------- 1410 1411To write a new object style BFD, the various sections to be written 1412have to be created. They are attached to the BFD in the same way as 1413input sections; data is written to the sections using 1414`bfd_set_section_contents'. 1415 1416 Any program that creates or combines sections (e.g., the assembler 1417and linker) must use the `asection' fields `output_section' and 1418`output_offset' to indicate the file sections to which each section 1419must be written. (If the section is being created from scratch, 1420`output_section' should probably point to the section itself and 1421`output_offset' should probably be zero.) 1422 1423 The data to be written comes from input sections attached (via 1424`output_section' pointers) to the output sections. The output section 1425structure can be considered a filter for the input section: the output 1426section determines the vma of the output data and the name, but the 1427input section determines the offset into the output section of the data 1428to be written. 1429 1430 E.g., to create a section "O", starting at 0x100, 0x123 long, 1431containing two subsections, "A" at offset 0x0 (i.e., at vma 0x100) and 1432"B" at offset 0x20 (i.e., at vma 0x120) the `asection' structures would 1433look like: 1434 1435 section name "A" 1436 output_offset 0x00 1437 size 0x20 1438 output_section -----------> section name "O" 1439 | vma 0x100 1440 section name "B" | size 0x123 1441 output_offset 0x20 | 1442 size 0x103 | 1443 output_section --------| 1444 14452.6.3 Link orders 1446----------------- 1447 1448The data within a section is stored in a "link_order". These are much 1449like the fixups in `gas'. The link_order abstraction allows a section 1450to grow and shrink within itself. 1451 1452 A link_order knows how big it is, and which is the next link_order 1453and where the raw data for it is; it also points to a list of 1454relocations which apply to it. 1455 1456 The link_order is used by the linker to perform relaxing on final 1457code. The compiler creates code which is as big as necessary to make 1458it work without relaxing, and the user can select whether to relax. 1459Sometimes relaxing takes a lot of time. The linker runs around the 1460relocations to see if any are attached to data which can be shrunk, if 1461so it does it on a link_order by link_order basis. 1462 1463 1464File: bfd.info, Node: typedef asection, Next: section prototypes, Prev: Section Output, Up: Sections 1465 14662.6.4 typedef asection 1467---------------------- 1468 1469Here is the section structure: 1470 1471 1472 typedef struct bfd_section 1473 { 1474 /* The name of the section; the name isn't a copy, the pointer is 1475 the same as that passed to bfd_make_section. */ 1476 const char *name; 1477 1478 /* A unique sequence number. */ 1479 unsigned int id; 1480 1481 /* Which section in the bfd; 0..n-1 as sections are created in a bfd. */ 1482 unsigned int index; 1483 1484 /* The next section in the list belonging to the BFD, or NULL. */ 1485 struct bfd_section *next; 1486 1487 /* The previous section in the list belonging to the BFD, or NULL. */ 1488 struct bfd_section *prev; 1489 1490 /* The field flags contains attributes of the section. Some 1491 flags are read in from the object file, and some are 1492 synthesized from other information. */ 1493 flagword flags; 1494 1495 #define SEC_NO_FLAGS 0x000 1496 1497 /* Tells the OS to allocate space for this section when loading. 1498 This is clear for a section containing debug information only. */ 1499 #define SEC_ALLOC 0x001 1500 1501 /* Tells the OS to load the section from the file when loading. 1502 This is clear for a .bss section. */ 1503 #define SEC_LOAD 0x002 1504 1505 /* The section contains data still to be relocated, so there is 1506 some relocation information too. */ 1507 #define SEC_RELOC 0x004 1508 1509 /* A signal to the OS that the section contains read only data. */ 1510 #define SEC_READONLY 0x008 1511 1512 /* The section contains code only. */ 1513 #define SEC_CODE 0x010 1514 1515 /* The section contains data only. */ 1516 #define SEC_DATA 0x020 1517 1518 /* The section will reside in ROM. */ 1519 #define SEC_ROM 0x040 1520 1521 /* The section contains constructor information. This section 1522 type is used by the linker to create lists of constructors and 1523 destructors used by `g++'. When a back end sees a symbol 1524 which should be used in a constructor list, it creates a new 1525 section for the type of name (e.g., `__CTOR_LIST__'), attaches 1526 the symbol to it, and builds a relocation. To build the lists 1527 of constructors, all the linker has to do is catenate all the 1528 sections called `__CTOR_LIST__' and relocate the data 1529 contained within - exactly the operations it would peform on 1530 standard data. */ 1531 #define SEC_CONSTRUCTOR 0x080 1532 1533 /* The section has contents - a data section could be 1534 `SEC_ALLOC' | `SEC_HAS_CONTENTS'; a debug section could be 1535 `SEC_HAS_CONTENTS' */ 1536 #define SEC_HAS_CONTENTS 0x100 1537 1538 /* An instruction to the linker to not output the section 1539 even if it has information which would normally be written. */ 1540 #define SEC_NEVER_LOAD 0x200 1541 1542 /* The section contains thread local data. */ 1543 #define SEC_THREAD_LOCAL 0x400 1544 1545 /* The section has GOT references. This flag is only for the 1546 linker, and is currently only used by the elf32-hppa back end. 1547 It will be set if global offset table references were detected 1548 in this section, which indicate to the linker that the section 1549 contains PIC code, and must be handled specially when doing a 1550 static link. */ 1551 #define SEC_HAS_GOT_REF 0x800 1552 1553 /* The section contains common symbols (symbols may be defined 1554 multiple times, the value of a symbol is the amount of 1555 space it requires, and the largest symbol value is the one 1556 used). Most targets have exactly one of these (which we 1557 translate to bfd_com_section_ptr), but ECOFF has two. */ 1558 #define SEC_IS_COMMON 0x1000 1559 1560 /* The section contains only debugging information. For 1561 example, this is set for ELF .debug and .stab sections. 1562 strip tests this flag to see if a section can be 1563 discarded. */ 1564 #define SEC_DEBUGGING 0x2000 1565 1566 /* The contents of this section are held in memory pointed to 1567 by the contents field. This is checked by bfd_get_section_contents, 1568 and the data is retrieved from memory if appropriate. */ 1569 #define SEC_IN_MEMORY 0x4000 1570 1571 /* The contents of this section are to be excluded by the 1572 linker for executable and shared objects unless those 1573 objects are to be further relocated. */ 1574 #define SEC_EXCLUDE 0x8000 1575 1576 /* The contents of this section are to be sorted based on the sum of 1577 the symbol and addend values specified by the associated relocation 1578 entries. Entries without associated relocation entries will be 1579 appended to the end of the section in an unspecified order. */ 1580 #define SEC_SORT_ENTRIES 0x10000 1581 1582 /* When linking, duplicate sections of the same name should be 1583 discarded, rather than being combined into a single section as 1584 is usually done. This is similar to how common symbols are 1585 handled. See SEC_LINK_DUPLICATES below. */ 1586 #define SEC_LINK_ONCE 0x20000 1587 1588 /* If SEC_LINK_ONCE is set, this bitfield describes how the linker 1589 should handle duplicate sections. */ 1590 #define SEC_LINK_DUPLICATES 0xc0000 1591 1592 /* This value for SEC_LINK_DUPLICATES means that duplicate 1593 sections with the same name should simply be discarded. */ 1594 #define SEC_LINK_DUPLICATES_DISCARD 0x0 1595 1596 /* This value for SEC_LINK_DUPLICATES means that the linker 1597 should warn if there are any duplicate sections, although 1598 it should still only link one copy. */ 1599 #define SEC_LINK_DUPLICATES_ONE_ONLY 0x40000 1600 1601 /* This value for SEC_LINK_DUPLICATES means that the linker 1602 should warn if any duplicate sections are a different size. */ 1603 #define SEC_LINK_DUPLICATES_SAME_SIZE 0x80000 1604 1605 /* This value for SEC_LINK_DUPLICATES means that the linker 1606 should warn if any duplicate sections contain different 1607 contents. */ 1608 #define SEC_LINK_DUPLICATES_SAME_CONTENTS \ 1609 (SEC_LINK_DUPLICATES_ONE_ONLY | SEC_LINK_DUPLICATES_SAME_SIZE) 1610 1611 /* This section was created by the linker as part of dynamic 1612 relocation or other arcane processing. It is skipped when 1613 going through the first-pass output, trusting that someone 1614 else up the line will take care of it later. */ 1615 #define SEC_LINKER_CREATED 0x100000 1616 1617 /* This section should not be subject to garbage collection. 1618 Also set to inform the linker that this section should not be 1619 listed in the link map as discarded. */ 1620 #define SEC_KEEP 0x200000 1621 1622 /* This section contains "short" data, and should be placed 1623 "near" the GP. */ 1624 #define SEC_SMALL_DATA 0x400000 1625 1626 /* Attempt to merge identical entities in the section. 1627 Entity size is given in the entsize field. */ 1628 #define SEC_MERGE 0x800000 1629 1630 /* If given with SEC_MERGE, entities to merge are zero terminated 1631 strings where entsize specifies character size instead of fixed 1632 size entries. */ 1633 #define SEC_STRINGS 0x1000000 1634 1635 /* This section contains data about section groups. */ 1636 #define SEC_GROUP 0x2000000 1637 1638 /* The section is a COFF shared library section. This flag is 1639 only for the linker. If this type of section appears in 1640 the input file, the linker must copy it to the output file 1641 without changing the vma or size. FIXME: Although this 1642 was originally intended to be general, it really is COFF 1643 specific (and the flag was renamed to indicate this). It 1644 might be cleaner to have some more general mechanism to 1645 allow the back end to control what the linker does with 1646 sections. */ 1647 #define SEC_COFF_SHARED_LIBRARY 0x4000000 1648 1649 /* This input section should be copied to output in reverse order 1650 as an array of pointers. This is for ELF linker internal use 1651 only. */ 1652 #define SEC_ELF_REVERSE_COPY 0x4000000 1653 1654 /* This section contains data which may be shared with other 1655 executables or shared objects. This is for COFF only. */ 1656 #define SEC_COFF_SHARED 0x8000000 1657 1658 /* This section should be compressed. This is for ELF linker 1659 internal use only. */ 1660 #define SEC_ELF_COMPRESS 0x8000000 1661 1662 /* When a section with this flag is being linked, then if the size of 1663 the input section is less than a page, it should not cross a page 1664 boundary. If the size of the input section is one page or more, 1665 it should be aligned on a page boundary. This is for TI 1666 TMS320C54X only. */ 1667 #define SEC_TIC54X_BLOCK 0x10000000 1668 1669 /* This section should be renamed. This is for ELF linker 1670 internal use only. */ 1671 #define SEC_ELF_RENAME 0x10000000 1672 1673 /* Conditionally link this section; do not link if there are no 1674 references found to any symbol in the section. This is for TI 1675 TMS320C54X only. */ 1676 #define SEC_TIC54X_CLINK 0x20000000 1677 1678 /* This section contains vliw code. This is for Toshiba MeP only. */ 1679 #define SEC_MEP_VLIW 0x20000000 1680 1681 /* Indicate that section has the no read flag set. This happens 1682 when memory read flag isn't set. */ 1683 #define SEC_COFF_NOREAD 0x40000000 1684 1685 /* Indicate that section has the purecode flag set. */ 1686 #define SEC_ELF_PURECODE 0x80000000 1687 1688 /* End of section flags. */ 1689 1690 /* Some internal packed boolean fields. */ 1691 1692 /* See the vma field. */ 1693 unsigned int user_set_vma : 1; 1694 1695 /* A mark flag used by some of the linker backends. */ 1696 unsigned int linker_mark : 1; 1697 1698 /* Another mark flag used by some of the linker backends. Set for 1699 output sections that have an input section. */ 1700 unsigned int linker_has_input : 1; 1701 1702 /* Mark flag used by some linker backends for garbage collection. */ 1703 unsigned int gc_mark : 1; 1704 1705 /* Section compression status. */ 1706 unsigned int compress_status : 2; 1707 #define COMPRESS_SECTION_NONE 0 1708 #define COMPRESS_SECTION_DONE 1 1709 #define DECOMPRESS_SECTION_SIZED 2 1710 1711 /* The following flags are used by the ELF linker. */ 1712 1713 /* Mark sections which have been allocated to segments. */ 1714 unsigned int segment_mark : 1; 1715 1716 /* Type of sec_info information. */ 1717 unsigned int sec_info_type:3; 1718 #define SEC_INFO_TYPE_NONE 0 1719 #define SEC_INFO_TYPE_STABS 1 1720 #define SEC_INFO_TYPE_MERGE 2 1721 #define SEC_INFO_TYPE_EH_FRAME 3 1722 #define SEC_INFO_TYPE_JUST_SYMS 4 1723 #define SEC_INFO_TYPE_TARGET 5 1724 #define SEC_INFO_TYPE_EH_FRAME_ENTRY 6 1725 1726 /* Nonzero if this section uses RELA relocations, rather than REL. */ 1727 unsigned int use_rela_p:1; 1728 1729 /* Bits used by various backends. The generic code doesn't touch 1730 these fields. */ 1731 1732 unsigned int sec_flg0:1; 1733 unsigned int sec_flg1:1; 1734 unsigned int sec_flg2:1; 1735 unsigned int sec_flg3:1; 1736 unsigned int sec_flg4:1; 1737 unsigned int sec_flg5:1; 1738 1739 /* End of internal packed boolean fields. */ 1740 1741 /* The virtual memory address of the section - where it will be 1742 at run time. The symbols are relocated against this. The 1743 user_set_vma flag is maintained by bfd; if it's not set, the 1744 backend can assign addresses (for example, in `a.out', where 1745 the default address for `.data' is dependent on the specific 1746 target and various flags). */ 1747 bfd_vma vma; 1748 1749 /* The load address of the section - where it would be in a 1750 rom image; really only used for writing section header 1751 information. */ 1752 bfd_vma lma; 1753 1754 /* The size of the section in *octets*, as it will be output. 1755 Contains a value even if the section has no contents (e.g., the 1756 size of `.bss'). */ 1757 bfd_size_type size; 1758 1759 /* For input sections, the original size on disk of the section, in 1760 octets. This field should be set for any section whose size is 1761 changed by linker relaxation. It is required for sections where 1762 the linker relaxation scheme doesn't cache altered section and 1763 reloc contents (stabs, eh_frame, SEC_MERGE, some coff relaxing 1764 targets), and thus the original size needs to be kept to read the 1765 section multiple times. For output sections, rawsize holds the 1766 section size calculated on a previous linker relaxation pass. */ 1767 bfd_size_type rawsize; 1768 1769 /* The compressed size of the section in octets. */ 1770 bfd_size_type compressed_size; 1771 1772 /* Relaxation table. */ 1773 struct relax_table *relax; 1774 1775 /* Count of used relaxation table entries. */ 1776 int relax_count; 1777 1778 1779 /* If this section is going to be output, then this value is the 1780 offset in *bytes* into the output section of the first byte in the 1781 input section (byte ==> smallest addressable unit on the 1782 target). In most cases, if this was going to start at the 1783 100th octet (8-bit quantity) in the output section, this value 1784 would be 100. However, if the target byte size is 16 bits 1785 (bfd_octets_per_byte is "2"), this value would be 50. */ 1786 bfd_vma output_offset; 1787 1788 /* The output section through which to map on output. */ 1789 struct bfd_section *output_section; 1790 1791 /* The alignment requirement of the section, as an exponent of 2 - 1792 e.g., 3 aligns to 2^3 (or 8). */ 1793 unsigned int alignment_power; 1794 1795 /* If an input section, a pointer to a vector of relocation 1796 records for the data in this section. */ 1797 struct reloc_cache_entry *relocation; 1798 1799 /* If an output section, a pointer to a vector of pointers to 1800 relocation records for the data in this section. */ 1801 struct reloc_cache_entry **orelocation; 1802 1803 /* The number of relocation records in one of the above. */ 1804 unsigned reloc_count; 1805 1806 /* Information below is back end specific - and not always used 1807 or updated. */ 1808 1809 /* File position of section data. */ 1810 file_ptr filepos; 1811 1812 /* File position of relocation info. */ 1813 file_ptr rel_filepos; 1814 1815 /* File position of line data. */ 1816 file_ptr line_filepos; 1817 1818 /* Pointer to data for applications. */ 1819 void *userdata; 1820 1821 /* If the SEC_IN_MEMORY flag is set, this points to the actual 1822 contents. */ 1823 unsigned char *contents; 1824 1825 /* Attached line number information. */ 1826 alent *lineno; 1827 1828 /* Number of line number records. */ 1829 unsigned int lineno_count; 1830 1831 /* Entity size for merging purposes. */ 1832 unsigned int entsize; 1833 1834 /* Points to the kept section if this section is a link-once section, 1835 and is discarded. */ 1836 struct bfd_section *kept_section; 1837 1838 /* When a section is being output, this value changes as more 1839 linenumbers are written out. */ 1840 file_ptr moving_line_filepos; 1841 1842 /* What the section number is in the target world. */ 1843 int target_index; 1844 1845 void *used_by_bfd; 1846 1847 /* If this is a constructor section then here is a list of the 1848 relocations created to relocate items within it. */ 1849 struct relent_chain *constructor_chain; 1850 1851 /* The BFD which owns the section. */ 1852 bfd *owner; 1853 1854 /* A symbol which points at this section only. */ 1855 struct bfd_symbol *symbol; 1856 struct bfd_symbol **symbol_ptr_ptr; 1857 1858 /* Early in the link process, map_head and map_tail are used to build 1859 a list of input sections attached to an output section. Later, 1860 output sections use these fields for a list of bfd_link_order 1861 structs. */ 1862 union { 1863 struct bfd_link_order *link_order; 1864 struct bfd_section *s; 1865 } map_head, map_tail; 1866 } asection; 1867 1868 /* Relax table contains information about instructions which can 1869 be removed by relaxation -- replacing a long address with a 1870 short address. */ 1871 struct relax_table { 1872 /* Address where bytes may be deleted. */ 1873 bfd_vma addr; 1874 1875 /* Number of bytes to be deleted. */ 1876 int size; 1877 }; 1878 1879 /* Note: the following are provided as inline functions rather than macros 1880 because not all callers use the return value. A macro implementation 1881 would use a comma expression, eg: "((ptr)->foo = val, TRUE)" and some 1882 compilers will complain about comma expressions that have no effect. */ 1883 static inline bfd_boolean 1884 bfd_set_section_userdata (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr, void * val) 1885 { 1886 ptr->userdata = val; 1887 return TRUE; 1888 } 1889 1890 static inline bfd_boolean 1891 bfd_set_section_vma (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr, bfd_vma val) 1892 { 1893 ptr->vma = ptr->lma = val; 1894 ptr->user_set_vma = TRUE; 1895 return TRUE; 1896 } 1897 1898 static inline bfd_boolean 1899 bfd_set_section_alignment (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr, unsigned int val) 1900 { 1901 ptr->alignment_power = val; 1902 return TRUE; 1903 } 1904 1905 /* These sections are global, and are managed by BFD. The application 1906 and target back end are not permitted to change the values in 1907 these sections. */ 1908 extern asection _bfd_std_section[4]; 1909 1910 #define BFD_ABS_SECTION_NAME "*ABS*" 1911 #define BFD_UND_SECTION_NAME "*UND*" 1912 #define BFD_COM_SECTION_NAME "*COM*" 1913 #define BFD_IND_SECTION_NAME "*IND*" 1914 1915 /* Pointer to the common section. */ 1916 #define bfd_com_section_ptr (&_bfd_std_section[0]) 1917 /* Pointer to the undefined section. */ 1918 #define bfd_und_section_ptr (&_bfd_std_section[1]) 1919 /* Pointer to the absolute section. */ 1920 #define bfd_abs_section_ptr (&_bfd_std_section[2]) 1921 /* Pointer to the indirect section. */ 1922 #define bfd_ind_section_ptr (&_bfd_std_section[3]) 1923 1924 #define bfd_is_und_section(sec) ((sec) == bfd_und_section_ptr) 1925 #define bfd_is_abs_section(sec) ((sec) == bfd_abs_section_ptr) 1926 #define bfd_is_ind_section(sec) ((sec) == bfd_ind_section_ptr) 1927 1928 #define bfd_is_const_section(SEC) \ 1929 ( ((SEC) == bfd_abs_section_ptr) \ 1930 || ((SEC) == bfd_und_section_ptr) \ 1931 || ((SEC) == bfd_com_section_ptr) \ 1932 || ((SEC) == bfd_ind_section_ptr)) 1933 1934 /* Macros to handle insertion and deletion of a bfd's sections. These 1935 only handle the list pointers, ie. do not adjust section_count, 1936 target_index etc. */ 1937 #define bfd_section_list_remove(ABFD, S) \ 1938 do \ 1939 { \ 1940 asection *_s = S; \ 1941 asection *_next = _s->next; \ 1942 asection *_prev = _s->prev; \ 1943 if (_prev) \ 1944 _prev->next = _next; \ 1945 else \ 1946 (ABFD)->sections = _next; \ 1947 if (_next) \ 1948 _next->prev = _prev; \ 1949 else \ 1950 (ABFD)->section_last = _prev; \ 1951 } \ 1952 while (0) 1953 #define bfd_section_list_append(ABFD, S) \ 1954 do \ 1955 { \ 1956 asection *_s = S; \ 1957 bfd *_abfd = ABFD; \ 1958 _s->next = NULL; \ 1959 if (_abfd->section_last) \ 1960 { \ 1961 _s->prev = _abfd->section_last; \ 1962 _abfd->section_last->next = _s; \ 1963 } \ 1964 else \ 1965 { \ 1966 _s->prev = NULL; \ 1967 _abfd->sections = _s; \ 1968 } \ 1969 _abfd->section_last = _s; \ 1970 } \ 1971 while (0) 1972 #define bfd_section_list_prepend(ABFD, S) \ 1973 do \ 1974 { \ 1975 asection *_s = S; \ 1976 bfd *_abfd = ABFD; \ 1977 _s->prev = NULL; \ 1978 if (_abfd->sections) \ 1979 { \ 1980 _s->next = _abfd->sections; \ 1981 _abfd->sections->prev = _s; \ 1982 } \ 1983 else \ 1984 { \ 1985 _s->next = NULL; \ 1986 _abfd->section_last = _s; \ 1987 } \ 1988 _abfd->sections = _s; \ 1989 } \ 1990 while (0) 1991 #define bfd_section_list_insert_after(ABFD, A, S) \ 1992 do \ 1993 { \ 1994 asection *_a = A; \ 1995 asection *_s = S; \ 1996 asection *_next = _a->next; \ 1997 _s->next = _next; \ 1998 _s->prev = _a; \ 1999 _a->next = _s; \ 2000 if (_next) \ 2001 _next->prev = _s; \ 2002 else \ 2003 (ABFD)->section_last = _s; \ 2004 } \ 2005 while (0) 2006 #define bfd_section_list_insert_before(ABFD, B, S) \ 2007 do \ 2008 { \ 2009 asection *_b = B; \ 2010 asection *_s = S; \ 2011 asection *_prev = _b->prev; \ 2012 _s->prev = _prev; \ 2013 _s->next = _b; \ 2014 _b->prev = _s; \ 2015 if (_prev) \ 2016 _prev->next = _s; \ 2017 else \ 2018 (ABFD)->sections = _s; \ 2019 } \ 2020 while (0) 2021 #define bfd_section_removed_from_list(ABFD, S) \ 2022 ((S)->next == NULL ? (ABFD)->section_last != (S) : (S)->next->prev != (S)) 2023 2024 #define BFD_FAKE_SECTION(SEC, SYM, NAME, IDX, FLAGS) \ 2025 /* name, id, index, next, prev, flags, user_set_vma, */ \ 2026 { NAME, IDX, 0, NULL, NULL, FLAGS, 0, \ 2027 \ 2028 /* linker_mark, linker_has_input, gc_mark, decompress_status, */ \ 2029 0, 0, 1, 0, \ 2030 \ 2031 /* segment_mark, sec_info_type, use_rela_p, */ \ 2032 0, 0, 0, \ 2033 \ 2034 /* sec_flg0, sec_flg1, sec_flg2, sec_flg3, sec_flg4, sec_flg5, */ \ 2035 0, 0, 0, 0, 0, 0, \ 2036 \ 2037 /* vma, lma, size, rawsize, compressed_size, relax, relax_count, */ \ 2038 0, 0, 0, 0, 0, 0, 0, \ 2039 \ 2040 /* output_offset, output_section, alignment_power, */ \ 2041 0, &SEC, 0, \ 2042 \ 2043 /* relocation, orelocation, reloc_count, filepos, rel_filepos, */ \ 2044 NULL, NULL, 0, 0, 0, \ 2045 \ 2046 /* line_filepos, userdata, contents, lineno, lineno_count, */ \ 2047 0, NULL, NULL, NULL, 0, \ 2048 \ 2049 /* entsize, kept_section, moving_line_filepos, */ \ 2050 0, NULL, 0, \ 2051 \ 2052 /* target_index, used_by_bfd, constructor_chain, owner, */ \ 2053 0, NULL, NULL, NULL, \ 2054 \ 2055 /* symbol, symbol_ptr_ptr, */ \ 2056 (struct bfd_symbol *) SYM, &SEC.symbol, \ 2057 \ 2058 /* map_head, map_tail */ \ 2059 { NULL }, { NULL } \ 2060 } 2061 2062 2063File: bfd.info, Node: section prototypes, Prev: typedef asection, Up: Sections 2064 20652.6.5 Section prototypes 2066------------------------ 2067 2068These are the functions exported by the section handling part of BFD. 2069 20702.6.5.1 `bfd_section_list_clear' 2071................................ 2072 2073*Synopsis* 2074 void bfd_section_list_clear (bfd *); 2075 *Description* 2076Clears the section list, and also resets the section count and hash 2077table entries. 2078 20792.6.5.2 `bfd_get_section_by_name' 2080................................. 2081 2082*Synopsis* 2083 asection *bfd_get_section_by_name (bfd *abfd, const char *name); 2084 *Description* 2085Return the most recently created section attached to ABFD named NAME. 2086Return NULL if no such section exists. 2087 20882.6.5.3 `bfd_get_next_section_by_name' 2089...................................... 2090 2091*Synopsis* 2092 asection *bfd_get_next_section_by_name (bfd *ibfd, asection *sec); 2093 *Description* 2094Given SEC is a section returned by `bfd_get_section_by_name', return 2095the next most recently created section attached to the same BFD with 2096the same name, or if no such section exists in the same BFD and IBFD is 2097non-NULL, the next section with the same name in any input BFD 2098following IBFD. Return NULL on finding no section. 2099 21002.6.5.4 `bfd_get_linker_section' 2101................................ 2102 2103*Synopsis* 2104 asection *bfd_get_linker_section (bfd *abfd, const char *name); 2105 *Description* 2106Return the linker created section attached to ABFD named NAME. Return 2107NULL if no such section exists. 2108 21092.6.5.5 `bfd_get_section_by_name_if' 2110.................................... 2111 2112*Synopsis* 2113 asection *bfd_get_section_by_name_if 2114 (bfd *abfd, 2115 const char *name, 2116 bfd_boolean (*func) (bfd *abfd, asection *sect, void *obj), 2117 void *obj); 2118 *Description* 2119Call the provided function FUNC for each section attached to the BFD 2120ABFD whose name matches NAME, passing OBJ as an argument. The function 2121will be called as if by 2122 2123 func (abfd, the_section, obj); 2124 2125 It returns the first section for which FUNC returns true, otherwise 2126`NULL'. 2127 21282.6.5.6 `bfd_get_unique_section_name' 2129..................................... 2130 2131*Synopsis* 2132 char *bfd_get_unique_section_name 2133 (bfd *abfd, const char *templat, int *count); 2134 *Description* 2135Invent a section name that is unique in ABFD by tacking a dot and a 2136digit suffix onto the original TEMPLAT. If COUNT is non-NULL, then it 2137specifies the first number tried as a suffix to generate a unique name. 2138The value pointed to by COUNT will be incremented in this case. 2139 21402.6.5.7 `bfd_make_section_old_way' 2141.................................. 2142 2143*Synopsis* 2144 asection *bfd_make_section_old_way (bfd *abfd, const char *name); 2145 *Description* 2146Create a new empty section called NAME and attach it to the end of the 2147chain of sections for the BFD ABFD. An attempt to create a section with 2148a name which is already in use returns its pointer without changing the 2149section chain. 2150 2151 It has the funny name since this is the way it used to be before it 2152was rewritten.... 2153 2154 Possible errors are: 2155 * `bfd_error_invalid_operation' - If output has already started for 2156 this BFD. 2157 2158 * `bfd_error_no_memory' - If memory allocation fails. 2159 21602.6.5.8 `bfd_make_section_anyway_with_flags' 2161............................................ 2162 2163*Synopsis* 2164 asection *bfd_make_section_anyway_with_flags 2165 (bfd *abfd, const char *name, flagword flags); 2166 *Description* 2167Create a new empty section called NAME and attach it to the end of the 2168chain of sections for ABFD. Create a new section even if there is 2169already a section with that name. Also set the attributes of the new 2170section to the value FLAGS. 2171 2172 Return `NULL' and set `bfd_error' on error; possible errors are: 2173 * `bfd_error_invalid_operation' - If output has already started for 2174 ABFD. 2175 2176 * `bfd_error_no_memory' - If memory allocation fails. 2177 21782.6.5.9 `bfd_make_section_anyway' 2179................................. 2180 2181*Synopsis* 2182 asection *bfd_make_section_anyway (bfd *abfd, const char *name); 2183 *Description* 2184Create a new empty section called NAME and attach it to the end of the 2185chain of sections for ABFD. Create a new section even if there is 2186already a section with that name. 2187 2188 Return `NULL' and set `bfd_error' on error; possible errors are: 2189 * `bfd_error_invalid_operation' - If output has already started for 2190 ABFD. 2191 2192 * `bfd_error_no_memory' - If memory allocation fails. 2193 21942.6.5.10 `bfd_make_section_with_flags' 2195...................................... 2196 2197*Synopsis* 2198 asection *bfd_make_section_with_flags 2199 (bfd *, const char *name, flagword flags); 2200 *Description* 2201Like `bfd_make_section_anyway', but return `NULL' (without calling 2202bfd_set_error ()) without changing the section chain if there is 2203already a section named NAME. Also set the attributes of the new 2204section to the value FLAGS. If there is an error, return `NULL' and set 2205`bfd_error'. 2206 22072.6.5.11 `bfd_make_section' 2208........................... 2209 2210*Synopsis* 2211 asection *bfd_make_section (bfd *, const char *name); 2212 *Description* 2213Like `bfd_make_section_anyway', but return `NULL' (without calling 2214bfd_set_error ()) without changing the section chain if there is 2215already a section named NAME. If there is an error, return `NULL' and 2216set `bfd_error'. 2217 22182.6.5.12 `bfd_get_next_section_id' 2219.................................. 2220 2221*Synopsis* 2222 int bfd_get_next_section_id (void); 2223 *Description* 2224Returns the id that the next section created will have. 2225 22262.6.5.13 `bfd_set_section_flags' 2227................................ 2228 2229*Synopsis* 2230 bfd_boolean bfd_set_section_flags 2231 (bfd *abfd, asection *sec, flagword flags); 2232 *Description* 2233Set the attributes of the section SEC in the BFD ABFD to the value 2234FLAGS. Return `TRUE' on success, `FALSE' on error. Possible error 2235returns are: 2236 2237 * `bfd_error_invalid_operation' - The section cannot have one or 2238 more of the attributes requested. For example, a .bss section in 2239 `a.out' may not have the `SEC_HAS_CONTENTS' field set. 2240 22412.6.5.14 `bfd_rename_section' 2242............................. 2243 2244*Synopsis* 2245 void bfd_rename_section 2246 (bfd *abfd, asection *sec, const char *newname); 2247 *Description* 2248Rename section SEC in ABFD to NEWNAME. 2249 22502.6.5.15 `bfd_map_over_sections' 2251................................ 2252 2253*Synopsis* 2254 void bfd_map_over_sections 2255 (bfd *abfd, 2256 void (*func) (bfd *abfd, asection *sect, void *obj), 2257 void *obj); 2258 *Description* 2259Call the provided function FUNC for each section attached to the BFD 2260ABFD, passing OBJ as an argument. The function will be called as if by 2261 2262 func (abfd, the_section, obj); 2263 2264 This is the preferred method for iterating over sections; an 2265alternative would be to use a loop: 2266 2267 asection *p; 2268 for (p = abfd->sections; p != NULL; p = p->next) 2269 func (abfd, p, ...) 2270 22712.6.5.16 `bfd_sections_find_if' 2272............................... 2273 2274*Synopsis* 2275 asection *bfd_sections_find_if 2276 (bfd *abfd, 2277 bfd_boolean (*operation) (bfd *abfd, asection *sect, void *obj), 2278 void *obj); 2279 *Description* 2280Call the provided function OPERATION for each section attached to the 2281BFD ABFD, passing OBJ as an argument. The function will be called as if 2282by 2283 2284 operation (abfd, the_section, obj); 2285 2286 It returns the first section for which OPERATION returns true. 2287 22882.6.5.17 `bfd_set_section_size' 2289............................... 2290 2291*Synopsis* 2292 bfd_boolean bfd_set_section_size 2293 (bfd *abfd, asection *sec, bfd_size_type val); 2294 *Description* 2295Set SEC to the size VAL. If the operation is ok, then `TRUE' is 2296returned, else `FALSE'. 2297 2298 Possible error returns: 2299 * `bfd_error_invalid_operation' - Writing has started to the BFD, so 2300 setting the size is invalid. 2301 23022.6.5.18 `bfd_set_section_contents' 2303................................... 2304 2305*Synopsis* 2306 bfd_boolean bfd_set_section_contents 2307 (bfd *abfd, asection *section, const void *data, 2308 file_ptr offset, bfd_size_type count); 2309 *Description* 2310Sets the contents of the section SECTION in BFD ABFD to the data 2311starting in memory at DATA. The data is written to the output section 2312starting at offset OFFSET for COUNT octets. 2313 2314 Normally `TRUE' is returned, else `FALSE'. Possible error returns 2315are: 2316 * `bfd_error_no_contents' - The output section does not have the 2317 `SEC_HAS_CONTENTS' attribute, so nothing can be written to it. 2318 2319 * and some more too 2320 This routine is front end to the back end function 2321`_bfd_set_section_contents'. 2322 23232.6.5.19 `bfd_get_section_contents' 2324................................... 2325 2326*Synopsis* 2327 bfd_boolean bfd_get_section_contents 2328 (bfd *abfd, asection *section, void *location, file_ptr offset, 2329 bfd_size_type count); 2330 *Description* 2331Read data from SECTION in BFD ABFD into memory starting at LOCATION. 2332The data is read at an offset of OFFSET from the start of the input 2333section, and is read for COUNT bytes. 2334 2335 If the contents of a constructor with the `SEC_CONSTRUCTOR' flag set 2336are requested or if the section does not have the `SEC_HAS_CONTENTS' 2337flag set, then the LOCATION is filled with zeroes. If no errors occur, 2338`TRUE' is returned, else `FALSE'. 2339 23402.6.5.20 `bfd_malloc_and_get_section' 2341..................................... 2342 2343*Synopsis* 2344 bfd_boolean bfd_malloc_and_get_section 2345 (bfd *abfd, asection *section, bfd_byte **buf); 2346 *Description* 2347Read all data from SECTION in BFD ABFD into a buffer, *BUF, malloc'd by 2348this function. 2349 23502.6.5.21 `bfd_copy_private_section_data' 2351........................................ 2352 2353*Synopsis* 2354 bfd_boolean bfd_copy_private_section_data 2355 (bfd *ibfd, asection *isec, bfd *obfd, asection *osec); 2356 *Description* 2357Copy private section information from ISEC in the BFD IBFD to the 2358section OSEC in the BFD OBFD. Return `TRUE' on success, `FALSE' on 2359error. Possible error returns are: 2360 2361 * `bfd_error_no_memory' - Not enough memory exists to create private 2362 data for OSEC. 2363 2364 #define bfd_copy_private_section_data(ibfd, isection, obfd, osection) \ 2365 BFD_SEND (obfd, _bfd_copy_private_section_data, \ 2366 (ibfd, isection, obfd, osection)) 2367 23682.6.5.22 `bfd_generic_is_group_section' 2369....................................... 2370 2371*Synopsis* 2372 bfd_boolean bfd_generic_is_group_section (bfd *, const asection *sec); 2373 *Description* 2374Returns TRUE if SEC is a member of a group. 2375 23762.6.5.23 `bfd_generic_discard_group' 2377.................................... 2378 2379*Synopsis* 2380 bfd_boolean bfd_generic_discard_group (bfd *abfd, asection *group); 2381 *Description* 2382Remove all members of GROUP from the output. 2383 2384 2385File: bfd.info, Node: Symbols, Next: Archives, Prev: Sections, Up: BFD front end 2386 23872.7 Symbols 2388=========== 2389 2390BFD tries to maintain as much symbol information as it can when it 2391moves information from file to file. BFD passes information to 2392applications though the `asymbol' structure. When the application 2393requests the symbol table, BFD reads the table in the native form and 2394translates parts of it into the internal format. To maintain more than 2395the information passed to applications, some targets keep some 2396information "behind the scenes" in a structure only the particular back 2397end knows about. For example, the coff back end keeps the original 2398symbol table structure as well as the canonical structure when a BFD is 2399read in. On output, the coff back end can reconstruct the output symbol 2400table so that no information is lost, even information unique to coff 2401which BFD doesn't know or understand. If a coff symbol table were read, 2402but were written through an a.out back end, all the coff specific 2403information would be lost. The symbol table of a BFD is not necessarily 2404read in until a canonicalize request is made. Then the BFD back end 2405fills in a table provided by the application with pointers to the 2406canonical information. To output symbols, the application provides BFD 2407with a table of pointers to pointers to `asymbol's. This allows 2408applications like the linker to output a symbol as it was read, since 2409the "behind the scenes" information will be still available. 2410 2411* Menu: 2412 2413* Reading Symbols:: 2414* Writing Symbols:: 2415* Mini Symbols:: 2416* typedef asymbol:: 2417* symbol handling functions:: 2418 2419 2420File: bfd.info, Node: Reading Symbols, Next: Writing Symbols, Prev: Symbols, Up: Symbols 2421 24222.7.1 Reading symbols 2423--------------------- 2424 2425There are two stages to reading a symbol table from a BFD: allocating 2426storage, and the actual reading process. This is an excerpt from an 2427application which reads the symbol table: 2428 2429 long storage_needed; 2430 asymbol **symbol_table; 2431 long number_of_symbols; 2432 long i; 2433 2434 storage_needed = bfd_get_symtab_upper_bound (abfd); 2435 2436 if (storage_needed < 0) 2437 FAIL 2438 2439 if (storage_needed == 0) 2440 return; 2441 2442 symbol_table = xmalloc (storage_needed); 2443 ... 2444 number_of_symbols = 2445 bfd_canonicalize_symtab (abfd, symbol_table); 2446 2447 if (number_of_symbols < 0) 2448 FAIL 2449 2450 for (i = 0; i < number_of_symbols; i++) 2451 process_symbol (symbol_table[i]); 2452 2453 All storage for the symbols themselves is in an objalloc connected 2454to the BFD; it is freed when the BFD is closed. 2455 2456 2457File: bfd.info, Node: Writing Symbols, Next: Mini Symbols, Prev: Reading Symbols, Up: Symbols 2458 24592.7.2 Writing symbols 2460--------------------- 2461 2462Writing of a symbol table is automatic when a BFD open for writing is 2463closed. The application attaches a vector of pointers to pointers to 2464symbols to the BFD being written, and fills in the symbol count. The 2465close and cleanup code reads through the table provided and performs 2466all the necessary operations. The BFD output code must always be 2467provided with an "owned" symbol: one which has come from another BFD, 2468or one which has been created using `bfd_make_empty_symbol'. Here is an 2469example showing the creation of a symbol table with only one element: 2470 2471 #include "sysdep.h" 2472 #include "bfd.h" 2473 int main (void) 2474 { 2475 bfd *abfd; 2476 asymbol *ptrs[2]; 2477 asymbol *new; 2478 2479 abfd = bfd_openw ("foo","a.out-sunos-big"); 2480 bfd_set_format (abfd, bfd_object); 2481 new = bfd_make_empty_symbol (abfd); 2482 new->name = "dummy_symbol"; 2483 new->section = bfd_make_section_old_way (abfd, ".text"); 2484 new->flags = BSF_GLOBAL; 2485 new->value = 0x12345; 2486 2487 ptrs[0] = new; 2488 ptrs[1] = 0; 2489 2490 bfd_set_symtab (abfd, ptrs, 1); 2491 bfd_close (abfd); 2492 return 0; 2493 } 2494 2495 ./makesym 2496 nm foo 2497 00012345 A dummy_symbol 2498 2499 Many formats cannot represent arbitrary symbol information; for 2500instance, the `a.out' object format does not allow an arbitrary number 2501of sections. A symbol pointing to a section which is not one of 2502`.text', `.data' or `.bss' cannot be described. 2503 2504 2505File: bfd.info, Node: Mini Symbols, Next: typedef asymbol, Prev: Writing Symbols, Up: Symbols 2506 25072.7.3 Mini Symbols 2508------------------ 2509 2510Mini symbols provide read-only access to the symbol table. They use 2511less memory space, but require more time to access. They can be useful 2512for tools like nm or objdump, which may have to handle symbol tables of 2513extremely large executables. 2514 2515 The `bfd_read_minisymbols' function will read the symbols into 2516memory in an internal form. It will return a `void *' pointer to a 2517block of memory, a symbol count, and the size of each symbol. The 2518pointer is allocated using `malloc', and should be freed by the caller 2519when it is no longer needed. 2520 2521 The function `bfd_minisymbol_to_symbol' will take a pointer to a 2522minisymbol, and a pointer to a structure returned by 2523`bfd_make_empty_symbol', and return a `asymbol' structure. The return 2524value may or may not be the same as the value from 2525`bfd_make_empty_symbol' which was passed in. 2526 2527 2528File: bfd.info, Node: typedef asymbol, Next: symbol handling functions, Prev: Mini Symbols, Up: Symbols 2529 25302.7.4 typedef asymbol 2531--------------------- 2532 2533An `asymbol' has the form: 2534 2535 2536 typedef struct bfd_symbol 2537 { 2538 /* A pointer to the BFD which owns the symbol. This information 2539 is necessary so that a back end can work out what additional 2540 information (invisible to the application writer) is carried 2541 with the symbol. 2542 2543 This field is *almost* redundant, since you can use section->owner 2544 instead, except that some symbols point to the global sections 2545 bfd_{abs,com,und}_section. This could be fixed by making 2546 these globals be per-bfd (or per-target-flavor). FIXME. */ 2547 struct bfd *the_bfd; /* Use bfd_asymbol_bfd(sym) to access this field. */ 2548 2549 /* The text of the symbol. The name is left alone, and not copied; the 2550 application may not alter it. */ 2551 const char *name; 2552 2553 /* The value of the symbol. This really should be a union of a 2554 numeric value with a pointer, since some flags indicate that 2555 a pointer to another symbol is stored here. */ 2556 symvalue value; 2557 2558 /* Attributes of a symbol. */ 2559 #define BSF_NO_FLAGS 0x00 2560 2561 /* The symbol has local scope; `static' in `C'. The value 2562 is the offset into the section of the data. */ 2563 #define BSF_LOCAL (1 << 0) 2564 2565 /* The symbol has global scope; initialized data in `C'. The 2566 value is the offset into the section of the data. */ 2567 #define BSF_GLOBAL (1 << 1) 2568 2569 /* The symbol has global scope and is exported. The value is 2570 the offset into the section of the data. */ 2571 #define BSF_EXPORT BSF_GLOBAL /* No real difference. */ 2572 2573 /* A normal C symbol would be one of: 2574 `BSF_LOCAL', `BSF_UNDEFINED' or `BSF_GLOBAL'. */ 2575 2576 /* The symbol is a debugging record. The value has an arbitrary 2577 meaning, unless BSF_DEBUGGING_RELOC is also set. */ 2578 #define BSF_DEBUGGING (1 << 2) 2579 2580 /* The symbol denotes a function entry point. Used in ELF, 2581 perhaps others someday. */ 2582 #define BSF_FUNCTION (1 << 3) 2583 2584 /* Used by the linker. */ 2585 #define BSF_KEEP (1 << 5) 2586 2587 /* An ELF common symbol. */ 2588 #define BSF_ELF_COMMON (1 << 6) 2589 2590 /* A weak global symbol, overridable without warnings by 2591 a regular global symbol of the same name. */ 2592 #define BSF_WEAK (1 << 7) 2593 2594 /* This symbol was created to point to a section, e.g. ELF's 2595 STT_SECTION symbols. */ 2596 #define BSF_SECTION_SYM (1 << 8) 2597 2598 /* The symbol used to be a common symbol, but now it is 2599 allocated. */ 2600 #define BSF_OLD_COMMON (1 << 9) 2601 2602 /* In some files the type of a symbol sometimes alters its 2603 location in an output file - ie in coff a `ISFCN' symbol 2604 which is also `C_EXT' symbol appears where it was 2605 declared and not at the end of a section. This bit is set 2606 by the target BFD part to convey this information. */ 2607 #define BSF_NOT_AT_END (1 << 10) 2608 2609 /* Signal that the symbol is the label of constructor section. */ 2610 #define BSF_CONSTRUCTOR (1 << 11) 2611 2612 /* Signal that the symbol is a warning symbol. The name is a 2613 warning. The name of the next symbol is the one to warn about; 2614 if a reference is made to a symbol with the same name as the next 2615 symbol, a warning is issued by the linker. */ 2616 #define BSF_WARNING (1 << 12) 2617 2618 /* Signal that the symbol is indirect. This symbol is an indirect 2619 pointer to the symbol with the same name as the next symbol. */ 2620 #define BSF_INDIRECT (1 << 13) 2621 2622 /* BSF_FILE marks symbols that contain a file name. This is used 2623 for ELF STT_FILE symbols. */ 2624 #define BSF_FILE (1 << 14) 2625 2626 /* Symbol is from dynamic linking information. */ 2627 #define BSF_DYNAMIC (1 << 15) 2628 2629 /* The symbol denotes a data object. Used in ELF, and perhaps 2630 others someday. */ 2631 #define BSF_OBJECT (1 << 16) 2632 2633 /* This symbol is a debugging symbol. The value is the offset 2634 into the section of the data. BSF_DEBUGGING should be set 2635 as well. */ 2636 #define BSF_DEBUGGING_RELOC (1 << 17) 2637 2638 /* This symbol is thread local. Used in ELF. */ 2639 #define BSF_THREAD_LOCAL (1 << 18) 2640 2641 /* This symbol represents a complex relocation expression, 2642 with the expression tree serialized in the symbol name. */ 2643 #define BSF_RELC (1 << 19) 2644 2645 /* This symbol represents a signed complex relocation expression, 2646 with the expression tree serialized in the symbol name. */ 2647 #define BSF_SRELC (1 << 20) 2648 2649 /* This symbol was created by bfd_get_synthetic_symtab. */ 2650 #define BSF_SYNTHETIC (1 << 21) 2651 2652 /* This symbol is an indirect code object. Unrelated to BSF_INDIRECT. 2653 The dynamic linker will compute the value of this symbol by 2654 calling the function that it points to. BSF_FUNCTION must 2655 also be also set. */ 2656 #define BSF_GNU_INDIRECT_FUNCTION (1 << 22) 2657 /* This symbol is a globally unique data object. The dynamic linker 2658 will make sure that in the entire process there is just one symbol 2659 with this name and type in use. BSF_OBJECT must also be set. */ 2660 #define BSF_GNU_UNIQUE (1 << 23) 2661 2662 flagword flags; 2663 2664 /* A pointer to the section to which this symbol is 2665 relative. This will always be non NULL, there are special 2666 sections for undefined and absolute symbols. */ 2667 struct bfd_section *section; 2668 2669 /* Back end special data. */ 2670 union 2671 { 2672 void *p; 2673 bfd_vma i; 2674 } 2675 udata; 2676 } 2677 asymbol; 2678 2679 2680File: bfd.info, Node: symbol handling functions, Prev: typedef asymbol, Up: Symbols 2681 26822.7.5 Symbol handling functions 2683------------------------------- 2684 26852.7.5.1 `bfd_get_symtab_upper_bound' 2686.................................... 2687 2688*Description* 2689Return the number of bytes required to store a vector of pointers to 2690`asymbols' for all the symbols in the BFD ABFD, including a terminal 2691NULL pointer. If there are no symbols in the BFD, then return 0. If an 2692error occurs, return -1. 2693 #define bfd_get_symtab_upper_bound(abfd) \ 2694 BFD_SEND (abfd, _bfd_get_symtab_upper_bound, (abfd)) 2695 26962.7.5.2 `bfd_is_local_label' 2697............................ 2698 2699*Synopsis* 2700 bfd_boolean bfd_is_local_label (bfd *abfd, asymbol *sym); 2701 *Description* 2702Return TRUE if the given symbol SYM in the BFD ABFD is a compiler 2703generated local label, else return FALSE. 2704 27052.7.5.3 `bfd_is_local_label_name' 2706................................. 2707 2708*Synopsis* 2709 bfd_boolean bfd_is_local_label_name (bfd *abfd, const char *name); 2710 *Description* 2711Return TRUE if a symbol with the name NAME in the BFD ABFD is a 2712compiler generated local label, else return FALSE. This just checks 2713whether the name has the form of a local label. 2714 #define bfd_is_local_label_name(abfd, name) \ 2715 BFD_SEND (abfd, _bfd_is_local_label_name, (abfd, name)) 2716 27172.7.5.4 `bfd_is_target_special_symbol' 2718...................................... 2719 2720*Synopsis* 2721 bfd_boolean bfd_is_target_special_symbol (bfd *abfd, asymbol *sym); 2722 *Description* 2723Return TRUE iff a symbol SYM in the BFD ABFD is something special to 2724the particular target represented by the BFD. Such symbols should 2725normally not be mentioned to the user. 2726 #define bfd_is_target_special_symbol(abfd, sym) \ 2727 BFD_SEND (abfd, _bfd_is_target_special_symbol, (abfd, sym)) 2728 27292.7.5.5 `bfd_canonicalize_symtab' 2730................................. 2731 2732*Description* 2733Read the symbols from the BFD ABFD, and fills in the vector LOCATION 2734with pointers to the symbols and a trailing NULL. Return the actual 2735number of symbol pointers, not including the NULL. 2736 #define bfd_canonicalize_symtab(abfd, location) \ 2737 BFD_SEND (abfd, _bfd_canonicalize_symtab, (abfd, location)) 2738 27392.7.5.6 `bfd_set_symtab' 2740........................ 2741 2742*Synopsis* 2743 bfd_boolean bfd_set_symtab 2744 (bfd *abfd, asymbol **location, unsigned int count); 2745 *Description* 2746Arrange that when the output BFD ABFD is closed, the table LOCATION of 2747COUNT pointers to symbols will be written. 2748 27492.7.5.7 `bfd_print_symbol_vandf' 2750................................ 2751 2752*Synopsis* 2753 void bfd_print_symbol_vandf (bfd *abfd, void *file, asymbol *symbol); 2754 *Description* 2755Print the value and flags of the SYMBOL supplied to the stream FILE. 2756 27572.7.5.8 `bfd_make_empty_symbol' 2758............................... 2759 2760*Description* 2761Create a new `asymbol' structure for the BFD ABFD and return a pointer 2762to it. 2763 2764 This routine is necessary because each back end has private 2765information surrounding the `asymbol'. Building your own `asymbol' and 2766pointing to it will not create the private information, and will cause 2767problems later on. 2768 #define bfd_make_empty_symbol(abfd) \ 2769 BFD_SEND (abfd, _bfd_make_empty_symbol, (abfd)) 2770 27712.7.5.9 `_bfd_generic_make_empty_symbol' 2772........................................ 2773 2774*Synopsis* 2775 asymbol *_bfd_generic_make_empty_symbol (bfd *); 2776 *Description* 2777Create a new `asymbol' structure for the BFD ABFD and return a pointer 2778to it. Used by core file routines, binary back-end and anywhere else 2779where no private info is needed. 2780 27812.7.5.10 `bfd_make_debug_symbol' 2782................................ 2783 2784*Description* 2785Create a new `asymbol' structure for the BFD ABFD, to be used as a 2786debugging symbol. Further details of its use have yet to be worked out. 2787 #define bfd_make_debug_symbol(abfd,ptr,size) \ 2788 BFD_SEND (abfd, _bfd_make_debug_symbol, (abfd, ptr, size)) 2789 27902.7.5.11 `bfd_decode_symclass' 2791.............................. 2792 2793*Description* 2794Return a character corresponding to the symbol class of SYMBOL, or '?' 2795for an unknown class. 2796 2797 *Synopsis* 2798 int bfd_decode_symclass (asymbol *symbol); 2799 28002.7.5.12 `bfd_is_undefined_symclass' 2801.................................... 2802 2803*Description* 2804Returns non-zero if the class symbol returned by bfd_decode_symclass 2805represents an undefined symbol. Returns zero otherwise. 2806 2807 *Synopsis* 2808 bfd_boolean bfd_is_undefined_symclass (int symclass); 2809 28102.7.5.13 `bfd_symbol_info' 2811.......................... 2812 2813*Description* 2814Fill in the basic info about symbol that nm needs. Additional info may 2815be added by the back-ends after calling this function. 2816 2817 *Synopsis* 2818 void bfd_symbol_info (asymbol *symbol, symbol_info *ret); 2819 28202.7.5.14 `bfd_copy_private_symbol_data' 2821....................................... 2822 2823*Synopsis* 2824 bfd_boolean bfd_copy_private_symbol_data 2825 (bfd *ibfd, asymbol *isym, bfd *obfd, asymbol *osym); 2826 *Description* 2827Copy private symbol information from ISYM in the BFD IBFD to the symbol 2828OSYM in the BFD OBFD. Return `TRUE' on success, `FALSE' on error. 2829Possible error returns are: 2830 2831 * `bfd_error_no_memory' - Not enough memory exists to create private 2832 data for OSEC. 2833 2834 #define bfd_copy_private_symbol_data(ibfd, isymbol, obfd, osymbol) \ 2835 BFD_SEND (obfd, _bfd_copy_private_symbol_data, \ 2836 (ibfd, isymbol, obfd, osymbol)) 2837 2838 2839File: bfd.info, Node: Archives, Next: Formats, Prev: Symbols, Up: BFD front end 2840 28412.8 Archives 2842============ 2843 2844*Description* 2845An archive (or library) is just another BFD. It has a symbol table, 2846although there's not much a user program will do with it. 2847 2848 The big difference between an archive BFD and an ordinary BFD is 2849that the archive doesn't have sections. Instead it has a chain of BFDs 2850that are considered its contents. These BFDs can be manipulated like 2851any other. The BFDs contained in an archive opened for reading will 2852all be opened for reading. You may put either input or output BFDs 2853into an archive opened for output; they will be handled correctly when 2854the archive is closed. 2855 2856 Use `bfd_openr_next_archived_file' to step through the contents of 2857an archive opened for input. You don't have to read the entire archive 2858if you don't want to! Read it until you find what you want. 2859 2860 A BFD returned by `bfd_openr_next_archived_file' can be closed 2861manually with `bfd_close'. If you do not close it, then a second 2862iteration through the members of an archive may return the same BFD. 2863If you close the archive BFD, then all the member BFDs will 2864automatically be closed as well. 2865 2866 Archive contents of output BFDs are chained through the 2867`archive_next' pointer in a BFD. The first one is findable through the 2868`archive_head' slot of the archive. Set it with `bfd_set_archive_head' 2869(q.v.). A given BFD may be in only one open output archive at a time. 2870 2871 As expected, the BFD archive code is more general than the archive 2872code of any given environment. BFD archives may contain files of 2873different formats (e.g., a.out and coff) and even different 2874architectures. You may even place archives recursively into archives! 2875 2876 This can cause unexpected confusion, since some archive formats are 2877more expressive than others. For instance, Intel COFF archives can 2878preserve long filenames; SunOS a.out archives cannot. If you move a 2879file from the first to the second format and back again, the filename 2880may be truncated. Likewise, different a.out environments have different 2881conventions as to how they truncate filenames, whether they preserve 2882directory names in filenames, etc. When interoperating with native 2883tools, be sure your files are homogeneous. 2884 2885 Beware: most of these formats do not react well to the presence of 2886spaces in filenames. We do the best we can, but can't always handle 2887this case due to restrictions in the format of archives. Many Unix 2888utilities are braindead in regards to spaces and such in filenames 2889anyway, so this shouldn't be much of a restriction. 2890 2891 Archives are supported in BFD in `archive.c'. 2892 28932.8.1 Archive functions 2894----------------------- 2895 28962.8.1.1 `bfd_get_next_mapent' 2897............................. 2898 2899*Synopsis* 2900 symindex bfd_get_next_mapent 2901 (bfd *abfd, symindex previous, carsym **sym); 2902 *Description* 2903Step through archive ABFD's symbol table (if it has one). Successively 2904update SYM with the next symbol's information, returning that symbol's 2905(internal) index into the symbol table. 2906 2907 Supply `BFD_NO_MORE_SYMBOLS' as the PREVIOUS entry to get the first 2908one; returns `BFD_NO_MORE_SYMBOLS' when you've already got the last one. 2909 2910 A `carsym' is a canonical archive symbol. The only user-visible 2911element is its name, a null-terminated string. 2912 29132.8.1.2 `bfd_set_archive_head' 2914.............................. 2915 2916*Synopsis* 2917 bfd_boolean bfd_set_archive_head (bfd *output, bfd *new_head); 2918 *Description* 2919Set the head of the chain of BFDs contained in the archive OUTPUT to 2920NEW_HEAD. 2921 29222.8.1.3 `bfd_openr_next_archived_file' 2923...................................... 2924 2925*Synopsis* 2926 bfd *bfd_openr_next_archived_file (bfd *archive, bfd *previous); 2927 *Description* 2928Provided a BFD, ARCHIVE, containing an archive and NULL, open an input 2929BFD on the first contained element and returns that. Subsequent calls 2930should pass the archive and the previous return value to return a 2931created BFD to the next contained element. NULL is returned when there 2932are no more. 2933 2934 2935File: bfd.info, Node: Formats, Next: Relocations, Prev: Archives, Up: BFD front end 2936 29372.9 File formats 2938================ 2939 2940A format is a BFD concept of high level file contents type. The formats 2941supported by BFD are: 2942 2943 * `bfd_object' 2944 The BFD may contain data, symbols, relocations and debug info. 2945 2946 * `bfd_archive' 2947 The BFD contains other BFDs and an optional index. 2948 2949 * `bfd_core' 2950 The BFD contains the result of an executable core dump. 2951 29522.9.1 File format functions 2953--------------------------- 2954 29552.9.1.1 `bfd_check_format' 2956.......................... 2957 2958*Synopsis* 2959 bfd_boolean bfd_check_format (bfd *abfd, bfd_format format); 2960 *Description* 2961Verify if the file attached to the BFD ABFD is compatible with the 2962format FORMAT (i.e., one of `bfd_object', `bfd_archive' or `bfd_core'). 2963 2964 If the BFD has been set to a specific target before the call, only 2965the named target and format combination is checked. If the target has 2966not been set, or has been set to `default', then all the known target 2967backends is interrogated to determine a match. If the default target 2968matches, it is used. If not, exactly one target must recognize the 2969file, or an error results. 2970 2971 The function returns `TRUE' on success, otherwise `FALSE' with one 2972of the following error codes: 2973 2974 * `bfd_error_invalid_operation' - if `format' is not one of 2975 `bfd_object', `bfd_archive' or `bfd_core'. 2976 2977 * `bfd_error_system_call' - if an error occured during a read - even 2978 some file mismatches can cause bfd_error_system_calls. 2979 2980 * `file_not_recognised' - none of the backends recognised the file 2981 format. 2982 2983 * `bfd_error_file_ambiguously_recognized' - more than one backend 2984 recognised the file format. 2985 29862.9.1.2 `bfd_check_format_matches' 2987.................................. 2988 2989*Synopsis* 2990 bfd_boolean bfd_check_format_matches 2991 (bfd *abfd, bfd_format format, char ***matching); 2992 *Description* 2993Like `bfd_check_format', except when it returns FALSE with `bfd_errno' 2994set to `bfd_error_file_ambiguously_recognized'. In that case, if 2995MATCHING is not NULL, it will be filled in with a NULL-terminated list 2996of the names of the formats that matched, allocated with `malloc'. 2997Then the user may choose a format and try again. 2998 2999 When done with the list that MATCHING points to, the caller should 3000free it. 3001 30022.9.1.3 `bfd_set_format' 3003........................ 3004 3005*Synopsis* 3006 bfd_boolean bfd_set_format (bfd *abfd, bfd_format format); 3007 *Description* 3008This function sets the file format of the BFD ABFD to the format 3009FORMAT. If the target set in the BFD does not support the format 3010requested, the format is invalid, or the BFD is not open for writing, 3011then an error occurs. 3012 30132.9.1.4 `bfd_format_string' 3014........................... 3015 3016*Synopsis* 3017 const char *bfd_format_string (bfd_format format); 3018 *Description* 3019Return a pointer to a const string `invalid', `object', `archive', 3020`core', or `unknown', depending upon the value of FORMAT. 3021 3022 3023File: bfd.info, Node: Relocations, Next: Core Files, Prev: Formats, Up: BFD front end 3024 30252.10 Relocations 3026================ 3027 3028BFD maintains relocations in much the same way it maintains symbols: 3029they are left alone until required, then read in en-masse and 3030translated into an internal form. A common routine 3031`bfd_perform_relocation' acts upon the canonical form to do the fixup. 3032 3033 Relocations are maintained on a per section basis, while symbols are 3034maintained on a per BFD basis. 3035 3036 All that a back end has to do to fit the BFD interface is to create 3037a `struct reloc_cache_entry' for each relocation in a particular 3038section, and fill in the right bits of the structures. 3039 3040* Menu: 3041 3042* typedef arelent:: 3043* howto manager:: 3044 3045 3046File: bfd.info, Node: typedef arelent, Next: howto manager, Prev: Relocations, Up: Relocations 3047 30482.10.1 typedef arelent 3049---------------------- 3050 3051This is the structure of a relocation entry: 3052 3053 3054 typedef enum bfd_reloc_status 3055 { 3056 /* No errors detected. */ 3057 bfd_reloc_ok, 3058 3059 /* The relocation was performed, but there was an overflow. */ 3060 bfd_reloc_overflow, 3061 3062 /* The address to relocate was not within the section supplied. */ 3063 bfd_reloc_outofrange, 3064 3065 /* Used by special functions. */ 3066 bfd_reloc_continue, 3067 3068 /* Unsupported relocation size requested. */ 3069 bfd_reloc_notsupported, 3070 3071 /* Unused. */ 3072 bfd_reloc_other, 3073 3074 /* The symbol to relocate against was undefined. */ 3075 bfd_reloc_undefined, 3076 3077 /* The relocation was performed, but may not be ok - presently 3078 generated only when linking i960 coff files with i960 b.out 3079 symbols. If this type is returned, the error_message argument 3080 to bfd_perform_relocation will be set. */ 3081 bfd_reloc_dangerous 3082 } 3083 bfd_reloc_status_type; 3084 3085 3086 typedef struct reloc_cache_entry 3087 { 3088 /* A pointer into the canonical table of pointers. */ 3089 struct bfd_symbol **sym_ptr_ptr; 3090 3091 /* offset in section. */ 3092 bfd_size_type address; 3093 3094 /* addend for relocation value. */ 3095 bfd_vma addend; 3096 3097 /* Pointer to how to perform the required relocation. */ 3098 reloc_howto_type *howto; 3099 3100 } 3101 arelent; 3102 *Description* 3103Here is a description of each of the fields within an `arelent': 3104 3105 * `sym_ptr_ptr' 3106 The symbol table pointer points to a pointer to the symbol 3107associated with the relocation request. It is the pointer into the 3108table returned by the back end's `canonicalize_symtab' action. *Note 3109Symbols::. The symbol is referenced through a pointer to a pointer so 3110that tools like the linker can fix up all the symbols of the same name 3111by modifying only one pointer. The relocation routine looks in the 3112symbol and uses the base of the section the symbol is attached to and 3113the value of the symbol as the initial relocation offset. If the symbol 3114pointer is zero, then the section provided is looked up. 3115 3116 * `address' 3117 The `address' field gives the offset in bytes from the base of the 3118section data which owns the relocation record to the first byte of 3119relocatable information. The actual data relocated will be relative to 3120this point; for example, a relocation type which modifies the bottom 3121two bytes of a four byte word would not touch the first byte pointed to 3122in a big endian world. 3123 3124 * `addend' 3125 The `addend' is a value provided by the back end to be added (!) to 3126the relocation offset. Its interpretation is dependent upon the howto. 3127For example, on the 68k the code: 3128 3129 char foo[]; 3130 main() 3131 { 3132 return foo[0x12345678]; 3133 } 3134 3135 Could be compiled into: 3136 3137 linkw fp,#-4 3138 moveb @#12345678,d0 3139 extbl d0 3140 unlk fp 3141 rts 3142 3143 This could create a reloc pointing to `foo', but leave the offset in 3144the data, something like: 3145 3146 RELOCATION RECORDS FOR [.text]: 3147 offset type value 3148 00000006 32 _foo 3149 3150 00000000 4e56 fffc ; linkw fp,#-4 3151 00000004 1039 1234 5678 ; moveb @#12345678,d0 3152 0000000a 49c0 ; extbl d0 3153 0000000c 4e5e ; unlk fp 3154 0000000e 4e75 ; rts 3155 3156 Using coff and an 88k, some instructions don't have enough space in 3157them to represent the full address range, and pointers have to be 3158loaded in two parts. So you'd get something like: 3159 3160 or.u r13,r0,hi16(_foo+0x12345678) 3161 ld.b r2,r13,lo16(_foo+0x12345678) 3162 jmp r1 3163 3164 This should create two relocs, both pointing to `_foo', and with 31650x12340000 in their addend field. The data would consist of: 3166 3167 RELOCATION RECORDS FOR [.text]: 3168 offset type value 3169 00000002 HVRT16 _foo+0x12340000 3170 00000006 LVRT16 _foo+0x12340000 3171 3172 00000000 5da05678 ; or.u r13,r0,0x5678 3173 00000004 1c4d5678 ; ld.b r2,r13,0x5678 3174 00000008 f400c001 ; jmp r1 3175 3176 The relocation routine digs out the value from the data, adds it to 3177the addend to get the original offset, and then adds the value of 3178`_foo'. Note that all 32 bits have to be kept around somewhere, to cope 3179with carry from bit 15 to bit 16. 3180 3181 One further example is the sparc and the a.out format. The sparc has 3182a similar problem to the 88k, in that some instructions don't have room 3183for an entire offset, but on the sparc the parts are created in odd 3184sized lumps. The designers of the a.out format chose to not use the 3185data within the section for storing part of the offset; all the offset 3186is kept within the reloc. Anything in the data should be ignored. 3187 3188 save %sp,-112,%sp 3189 sethi %hi(_foo+0x12345678),%g2 3190 ldsb [%g2+%lo(_foo+0x12345678)],%i0 3191 ret 3192 restore 3193 3194 Both relocs contain a pointer to `foo', and the offsets contain junk. 3195 3196 RELOCATION RECORDS FOR [.text]: 3197 offset type value 3198 00000004 HI22 _foo+0x12345678 3199 00000008 LO10 _foo+0x12345678 3200 3201 00000000 9de3bf90 ; save %sp,-112,%sp 3202 00000004 05000000 ; sethi %hi(_foo+0),%g2 3203 00000008 f048a000 ; ldsb [%g2+%lo(_foo+0)],%i0 3204 0000000c 81c7e008 ; ret 3205 00000010 81e80000 ; restore 3206 3207 * `howto' 3208 The `howto' field can be imagined as a relocation instruction. It is 3209a pointer to a structure which contains information on what to do with 3210all of the other information in the reloc record and data section. A 3211back end would normally have a relocation instruction set and turn 3212relocations into pointers to the correct structure on input - but it 3213would be possible to create each howto field on demand. 3214 32152.10.1.1 `enum complain_overflow' 3216................................. 3217 3218Indicates what sort of overflow checking should be done when performing 3219a relocation. 3220 3221 3222 enum complain_overflow 3223 { 3224 /* Do not complain on overflow. */ 3225 complain_overflow_dont, 3226 3227 /* Complain if the value overflows when considered as a signed 3228 number one bit larger than the field. ie. A bitfield of N bits 3229 is allowed to represent -2**n to 2**n-1. */ 3230 complain_overflow_bitfield, 3231 3232 /* Complain if the value overflows when considered as a signed 3233 number. */ 3234 complain_overflow_signed, 3235 3236 /* Complain if the value overflows when considered as an 3237 unsigned number. */ 3238 complain_overflow_unsigned 3239 }; 3240 32412.10.1.2 `reloc_howto_type' 3242........................... 3243 3244The `reloc_howto_type' is a structure which contains all the 3245information that libbfd needs to know to tie up a back end's data. 3246 3247 struct bfd_symbol; /* Forward declaration. */ 3248 3249 struct reloc_howto_struct 3250 { 3251 /* The type field has mainly a documentary use - the back end can 3252 do what it wants with it, though normally the back end's 3253 external idea of what a reloc number is stored 3254 in this field. For example, a PC relative word relocation 3255 in a coff environment has the type 023 - because that's 3256 what the outside world calls a R_PCRWORD reloc. */ 3257 unsigned int type; 3258 3259 /* The value the final relocation is shifted right by. This drops 3260 unwanted data from the relocation. */ 3261 unsigned int rightshift; 3262 3263 /* The size of the item to be relocated. This is *not* a 3264 power-of-two measure. To get the number of bytes operated 3265 on by a type of relocation, use bfd_get_reloc_size. */ 3266 int size; 3267 3268 /* The number of bits in the item to be relocated. This is used 3269 when doing overflow checking. */ 3270 unsigned int bitsize; 3271 3272 /* The relocation is relative to the field being relocated. */ 3273 bfd_boolean pc_relative; 3274 3275 /* The bit position of the reloc value in the destination. 3276 The relocated value is left shifted by this amount. */ 3277 unsigned int bitpos; 3278 3279 /* What type of overflow error should be checked for when 3280 relocating. */ 3281 enum complain_overflow complain_on_overflow; 3282 3283 /* If this field is non null, then the supplied function is 3284 called rather than the normal function. This allows really 3285 strange relocation methods to be accommodated (e.g., i960 callj 3286 instructions). */ 3287 bfd_reloc_status_type (*special_function) 3288 (bfd *, arelent *, struct bfd_symbol *, void *, asection *, 3289 bfd *, char **); 3290 3291 /* The textual name of the relocation type. */ 3292 char *name; 3293 3294 /* Some formats record a relocation addend in the section contents 3295 rather than with the relocation. For ELF formats this is the 3296 distinction between USE_REL and USE_RELA (though the code checks 3297 for USE_REL == 1/0). The value of this field is TRUE if the 3298 addend is recorded with the section contents; when performing a 3299 partial link (ld -r) the section contents (the data) will be 3300 modified. The value of this field is FALSE if addends are 3301 recorded with the relocation (in arelent.addend); when performing 3302 a partial link the relocation will be modified. 3303 All relocations for all ELF USE_RELA targets should set this field 3304 to FALSE (values of TRUE should be looked on with suspicion). 3305 However, the converse is not true: not all relocations of all ELF 3306 USE_REL targets set this field to TRUE. Why this is so is peculiar 3307 to each particular target. For relocs that aren't used in partial 3308 links (e.g. GOT stuff) it doesn't matter what this is set to. */ 3309 bfd_boolean partial_inplace; 3310 3311 /* src_mask selects the part of the instruction (or data) to be used 3312 in the relocation sum. If the target relocations don't have an 3313 addend in the reloc, eg. ELF USE_REL, src_mask will normally equal 3314 dst_mask to extract the addend from the section contents. If 3315 relocations do have an addend in the reloc, eg. ELF USE_RELA, this 3316 field should be zero. Non-zero values for ELF USE_RELA targets are 3317 bogus as in those cases the value in the dst_mask part of the 3318 section contents should be treated as garbage. */ 3319 bfd_vma src_mask; 3320 3321 /* dst_mask selects which parts of the instruction (or data) are 3322 replaced with a relocated value. */ 3323 bfd_vma dst_mask; 3324 3325 /* When some formats create PC relative instructions, they leave 3326 the value of the pc of the place being relocated in the offset 3327 slot of the instruction, so that a PC relative relocation can 3328 be made just by adding in an ordinary offset (e.g., sun3 a.out). 3329 Some formats leave the displacement part of an instruction 3330 empty (e.g., m88k bcs); this flag signals the fact. */ 3331 bfd_boolean pcrel_offset; 3332 }; 3333 33342.10.1.3 `The HOWTO Macro' 3335.......................... 3336 3337*Description* 3338The HOWTO define is horrible and will go away. 3339 #define HOWTO(C, R, S, B, P, BI, O, SF, NAME, INPLACE, MASKSRC, MASKDST, PC) \ 3340 { (unsigned) C, R, S, B, P, BI, O, SF, NAME, INPLACE, MASKSRC, MASKDST, PC } 3341 3342 *Description* 3343And will be replaced with the totally magic way. But for the moment, we 3344are compatible, so do it this way. 3345 #define NEWHOWTO(FUNCTION, NAME, SIZE, REL, IN) \ 3346 HOWTO (0, 0, SIZE, 0, REL, 0, complain_overflow_dont, FUNCTION, \ 3347 NAME, FALSE, 0, 0, IN) 3348 3349 *Description* 3350This is used to fill in an empty howto entry in an array. 3351 #define EMPTY_HOWTO(C) \ 3352 HOWTO ((C), 0, 0, 0, FALSE, 0, complain_overflow_dont, NULL, \ 3353 NULL, FALSE, 0, 0, FALSE) 3354 3355 *Description* 3356Helper routine to turn a symbol into a relocation value. 3357 #define HOWTO_PREPARE(relocation, symbol) \ 3358 { \ 3359 if (symbol != NULL) \ 3360 { \ 3361 if (bfd_is_com_section (symbol->section)) \ 3362 { \ 3363 relocation = 0; \ 3364 } \ 3365 else \ 3366 { \ 3367 relocation = symbol->value; \ 3368 } \ 3369 } \ 3370 } 3371 33722.10.1.4 `bfd_get_reloc_size' 3373............................. 3374 3375*Synopsis* 3376 unsigned int bfd_get_reloc_size (reloc_howto_type *); 3377 *Description* 3378For a reloc_howto_type that operates on a fixed number of bytes, this 3379returns the number of bytes operated on. 3380 33812.10.1.5 `arelent_chain' 3382........................ 3383 3384*Description* 3385How relocs are tied together in an `asection': 3386 typedef struct relent_chain 3387 { 3388 arelent relent; 3389 struct relent_chain *next; 3390 } 3391 arelent_chain; 3392 33932.10.1.6 `bfd_check_overflow' 3394............................. 3395 3396*Synopsis* 3397 bfd_reloc_status_type bfd_check_overflow 3398 (enum complain_overflow how, 3399 unsigned int bitsize, 3400 unsigned int rightshift, 3401 unsigned int addrsize, 3402 bfd_vma relocation); 3403 *Description* 3404Perform overflow checking on RELOCATION which has BITSIZE significant 3405bits and will be shifted right by RIGHTSHIFT bits, on a machine with 3406addresses containing ADDRSIZE significant bits. The result is either of 3407`bfd_reloc_ok' or `bfd_reloc_overflow'. 3408 34092.10.1.7 `bfd_perform_relocation' 3410................................. 3411 3412*Synopsis* 3413 bfd_reloc_status_type bfd_perform_relocation 3414 (bfd *abfd, 3415 arelent *reloc_entry, 3416 void *data, 3417 asection *input_section, 3418 bfd *output_bfd, 3419 char **error_message); 3420 *Description* 3421If OUTPUT_BFD is supplied to this function, the generated image will be 3422relocatable; the relocations are copied to the output file after they 3423have been changed to reflect the new state of the world. There are two 3424ways of reflecting the results of partial linkage in an output file: by 3425modifying the output data in place, and by modifying the relocation 3426record. Some native formats (e.g., basic a.out and basic coff) have no 3427way of specifying an addend in the relocation type, so the addend has 3428to go in the output data. This is no big deal since in these formats 3429the output data slot will always be big enough for the addend. Complex 3430reloc types with addends were invented to solve just this problem. The 3431ERROR_MESSAGE argument is set to an error message if this return 3432`bfd_reloc_dangerous'. 3433 34342.10.1.8 `bfd_install_relocation' 3435................................. 3436 3437*Synopsis* 3438 bfd_reloc_status_type bfd_install_relocation 3439 (bfd *abfd, 3440 arelent *reloc_entry, 3441 void *data, bfd_vma data_start, 3442 asection *input_section, 3443 char **error_message); 3444 *Description* 3445This looks remarkably like `bfd_perform_relocation', except it does not 3446expect that the section contents have been filled in. I.e., it's 3447suitable for use when creating, rather than applying a relocation. 3448 3449 For now, this function should be considered reserved for the 3450assembler. 3451 3452 3453File: bfd.info, Node: howto manager, Prev: typedef arelent, Up: Relocations 3454 34552.10.2 The howto manager 3456------------------------ 3457 3458When an application wants to create a relocation, but doesn't know what 3459the target machine might call it, it can find out by using this bit of 3460code. 3461 34622.10.2.1 `bfd_reloc_code_type' 3463.............................. 3464 3465*Description* 3466The insides of a reloc code. The idea is that, eventually, there will 3467be one enumerator for every type of relocation we ever do. Pass one of 3468these values to `bfd_reloc_type_lookup', and it'll return a howto 3469pointer. 3470 3471 This does mean that the application must determine the correct 3472enumerator value; you can't get a howto pointer from a random set of 3473attributes. 3474 3475 Here are the possible values for `enum bfd_reloc_code_real': 3476 3477 -- : BFD_RELOC_64 3478 -- : BFD_RELOC_32 3479 -- : BFD_RELOC_26 3480 -- : BFD_RELOC_24 3481 -- : BFD_RELOC_16 3482 -- : BFD_RELOC_14 3483 -- : BFD_RELOC_8 3484 Basic absolute relocations of N bits. 3485 3486 -- : BFD_RELOC_64_PCREL 3487 -- : BFD_RELOC_32_PCREL 3488 -- : BFD_RELOC_24_PCREL 3489 -- : BFD_RELOC_16_PCREL 3490 -- : BFD_RELOC_12_PCREL 3491 -- : BFD_RELOC_8_PCREL 3492 PC-relative relocations. Sometimes these are relative to the 3493 address of the relocation itself; sometimes they are relative to 3494 the start of the section containing the relocation. It depends on 3495 the specific target. 3496 3497 The 24-bit relocation is used in some Intel 960 configurations. 3498 3499 -- : BFD_RELOC_32_SECREL 3500 Section relative relocations. Some targets need this for DWARF2. 3501 3502 -- : BFD_RELOC_32_GOT_PCREL 3503 -- : BFD_RELOC_16_GOT_PCREL 3504 -- : BFD_RELOC_8_GOT_PCREL 3505 -- : BFD_RELOC_32_GOTOFF 3506 -- : BFD_RELOC_16_GOTOFF 3507 -- : BFD_RELOC_LO16_GOTOFF 3508 -- : BFD_RELOC_HI16_GOTOFF 3509 -- : BFD_RELOC_HI16_S_GOTOFF 3510 -- : BFD_RELOC_8_GOTOFF 3511 -- : BFD_RELOC_64_PLT_PCREL 3512 -- : BFD_RELOC_32_PLT_PCREL 3513 -- : BFD_RELOC_24_PLT_PCREL 3514 -- : BFD_RELOC_16_PLT_PCREL 3515 -- : BFD_RELOC_8_PLT_PCREL 3516 -- : BFD_RELOC_64_PLTOFF 3517 -- : BFD_RELOC_32_PLTOFF 3518 -- : BFD_RELOC_16_PLTOFF 3519 -- : BFD_RELOC_LO16_PLTOFF 3520 -- : BFD_RELOC_HI16_PLTOFF 3521 -- : BFD_RELOC_HI16_S_PLTOFF 3522 -- : BFD_RELOC_8_PLTOFF 3523 For ELF. 3524 3525 -- : BFD_RELOC_SIZE32 3526 -- : BFD_RELOC_SIZE64 3527 Size relocations. 3528 3529 -- : BFD_RELOC_68K_GLOB_DAT 3530 -- : BFD_RELOC_68K_JMP_SLOT 3531 -- : BFD_RELOC_68K_RELATIVE 3532 -- : BFD_RELOC_68K_TLS_GD32 3533 -- : BFD_RELOC_68K_TLS_GD16 3534 -- : BFD_RELOC_68K_TLS_GD8 3535 -- : BFD_RELOC_68K_TLS_LDM32 3536 -- : BFD_RELOC_68K_TLS_LDM16 3537 -- : BFD_RELOC_68K_TLS_LDM8 3538 -- : BFD_RELOC_68K_TLS_LDO32 3539 -- : BFD_RELOC_68K_TLS_LDO16 3540 -- : BFD_RELOC_68K_TLS_LDO8 3541 -- : BFD_RELOC_68K_TLS_IE32 3542 -- : BFD_RELOC_68K_TLS_IE16 3543 -- : BFD_RELOC_68K_TLS_IE8 3544 -- : BFD_RELOC_68K_TLS_LE32 3545 -- : BFD_RELOC_68K_TLS_LE16 3546 -- : BFD_RELOC_68K_TLS_LE8 3547 Relocations used by 68K ELF. 3548 3549 -- : BFD_RELOC_32_BASEREL 3550 -- : BFD_RELOC_16_BASEREL 3551 -- : BFD_RELOC_LO16_BASEREL 3552 -- : BFD_RELOC_HI16_BASEREL 3553 -- : BFD_RELOC_HI16_S_BASEREL 3554 -- : BFD_RELOC_8_BASEREL 3555 -- : BFD_RELOC_RVA 3556 Linkage-table relative. 3557 3558 -- : BFD_RELOC_8_FFnn 3559 Absolute 8-bit relocation, but used to form an address like 0xFFnn. 3560 3561 -- : BFD_RELOC_32_PCREL_S2 3562 -- : BFD_RELOC_16_PCREL_S2 3563 -- : BFD_RELOC_23_PCREL_S2 3564 These PC-relative relocations are stored as word displacements - 3565 i.e., byte displacements shifted right two bits. The 30-bit word 3566 displacement (<<32_PCREL_S2>> - 32 bits, shifted 2) is used on the 3567 SPARC. (SPARC tools generally refer to this as <<WDISP30>>.) The 3568 signed 16-bit displacement is used on the MIPS, and the 23-bit 3569 displacement is used on the Alpha. 3570 3571 -- : BFD_RELOC_HI22 3572 -- : BFD_RELOC_LO10 3573 High 22 bits and low 10 bits of 32-bit value, placed into lower 3574 bits of the target word. These are used on the SPARC. 3575 3576 -- : BFD_RELOC_GPREL16 3577 -- : BFD_RELOC_GPREL32 3578 For systems that allocate a Global Pointer register, these are 3579 displacements off that register. These relocation types are 3580 handled specially, because the value the register will have is 3581 decided relatively late. 3582 3583 -- : BFD_RELOC_I960_CALLJ 3584 Reloc types used for i960/b.out. 3585 3586 -- : BFD_RELOC_NONE 3587 -- : BFD_RELOC_SPARC_WDISP22 3588 -- : BFD_RELOC_SPARC22 3589 -- : BFD_RELOC_SPARC13 3590 -- : BFD_RELOC_SPARC_GOT10 3591 -- : BFD_RELOC_SPARC_GOT13 3592 -- : BFD_RELOC_SPARC_GOT22 3593 -- : BFD_RELOC_SPARC_PC10 3594 -- : BFD_RELOC_SPARC_PC22 3595 -- : BFD_RELOC_SPARC_WPLT30 3596 -- : BFD_RELOC_SPARC_COPY 3597 -- : BFD_RELOC_SPARC_GLOB_DAT 3598 -- : BFD_RELOC_SPARC_JMP_SLOT 3599 -- : BFD_RELOC_SPARC_RELATIVE 3600 -- : BFD_RELOC_SPARC_UA16 3601 -- : BFD_RELOC_SPARC_UA32 3602 -- : BFD_RELOC_SPARC_UA64 3603 -- : BFD_RELOC_SPARC_GOTDATA_HIX22 3604 -- : BFD_RELOC_SPARC_GOTDATA_LOX10 3605 -- : BFD_RELOC_SPARC_GOTDATA_OP_HIX22 3606 -- : BFD_RELOC_SPARC_GOTDATA_OP_LOX10 3607 -- : BFD_RELOC_SPARC_GOTDATA_OP 3608 -- : BFD_RELOC_SPARC_JMP_IREL 3609 -- : BFD_RELOC_SPARC_IRELATIVE 3610 SPARC ELF relocations. There is probably some overlap with other 3611 relocation types already defined. 3612 3613 -- : BFD_RELOC_SPARC_BASE13 3614 -- : BFD_RELOC_SPARC_BASE22 3615 I think these are specific to SPARC a.out (e.g., Sun 4). 3616 3617 -- : BFD_RELOC_SPARC_64 3618 -- : BFD_RELOC_SPARC_10 3619 -- : BFD_RELOC_SPARC_11 3620 -- : BFD_RELOC_SPARC_OLO10 3621 -- : BFD_RELOC_SPARC_HH22 3622 -- : BFD_RELOC_SPARC_HM10 3623 -- : BFD_RELOC_SPARC_LM22 3624 -- : BFD_RELOC_SPARC_PC_HH22 3625 -- : BFD_RELOC_SPARC_PC_HM10 3626 -- : BFD_RELOC_SPARC_PC_LM22 3627 -- : BFD_RELOC_SPARC_WDISP16 3628 -- : BFD_RELOC_SPARC_WDISP19 3629 -- : BFD_RELOC_SPARC_7 3630 -- : BFD_RELOC_SPARC_6 3631 -- : BFD_RELOC_SPARC_5 3632 -- : BFD_RELOC_SPARC_DISP64 3633 -- : BFD_RELOC_SPARC_PLT32 3634 -- : BFD_RELOC_SPARC_PLT64 3635 -- : BFD_RELOC_SPARC_HIX22 3636 -- : BFD_RELOC_SPARC_LOX10 3637 -- : BFD_RELOC_SPARC_H44 3638 -- : BFD_RELOC_SPARC_M44 3639 -- : BFD_RELOC_SPARC_L44 3640 -- : BFD_RELOC_SPARC_REGISTER 3641 -- : BFD_RELOC_SPARC_H34 3642 -- : BFD_RELOC_SPARC_SIZE32 3643 -- : BFD_RELOC_SPARC_SIZE64 3644 -- : BFD_RELOC_SPARC_WDISP10 3645 SPARC64 relocations 3646 3647 -- : BFD_RELOC_SPARC_REV32 3648 SPARC little endian relocation 3649 3650 -- : BFD_RELOC_SPARC_TLS_GD_HI22 3651 -- : BFD_RELOC_SPARC_TLS_GD_LO10 3652 -- : BFD_RELOC_SPARC_TLS_GD_ADD 3653 -- : BFD_RELOC_SPARC_TLS_GD_CALL 3654 -- : BFD_RELOC_SPARC_TLS_LDM_HI22 3655 -- : BFD_RELOC_SPARC_TLS_LDM_LO10 3656 -- : BFD_RELOC_SPARC_TLS_LDM_ADD 3657 -- : BFD_RELOC_SPARC_TLS_LDM_CALL 3658 -- : BFD_RELOC_SPARC_TLS_LDO_HIX22 3659 -- : BFD_RELOC_SPARC_TLS_LDO_LOX10 3660 -- : BFD_RELOC_SPARC_TLS_LDO_ADD 3661 -- : BFD_RELOC_SPARC_TLS_IE_HI22 3662 -- : BFD_RELOC_SPARC_TLS_IE_LO10 3663 -- : BFD_RELOC_SPARC_TLS_IE_LD 3664 -- : BFD_RELOC_SPARC_TLS_IE_LDX 3665 -- : BFD_RELOC_SPARC_TLS_IE_ADD 3666 -- : BFD_RELOC_SPARC_TLS_LE_HIX22 3667 -- : BFD_RELOC_SPARC_TLS_LE_LOX10 3668 -- : BFD_RELOC_SPARC_TLS_DTPMOD32 3669 -- : BFD_RELOC_SPARC_TLS_DTPMOD64 3670 -- : BFD_RELOC_SPARC_TLS_DTPOFF32 3671 -- : BFD_RELOC_SPARC_TLS_DTPOFF64 3672 -- : BFD_RELOC_SPARC_TLS_TPOFF32 3673 -- : BFD_RELOC_SPARC_TLS_TPOFF64 3674 SPARC TLS relocations 3675 3676 -- : BFD_RELOC_SPU_IMM7 3677 -- : BFD_RELOC_SPU_IMM8 3678 -- : BFD_RELOC_SPU_IMM10 3679 -- : BFD_RELOC_SPU_IMM10W 3680 -- : BFD_RELOC_SPU_IMM16 3681 -- : BFD_RELOC_SPU_IMM16W 3682 -- : BFD_RELOC_SPU_IMM18 3683 -- : BFD_RELOC_SPU_PCREL9a 3684 -- : BFD_RELOC_SPU_PCREL9b 3685 -- : BFD_RELOC_SPU_PCREL16 3686 -- : BFD_RELOC_SPU_LO16 3687 -- : BFD_RELOC_SPU_HI16 3688 -- : BFD_RELOC_SPU_PPU32 3689 -- : BFD_RELOC_SPU_PPU64 3690 -- : BFD_RELOC_SPU_ADD_PIC 3691 SPU Relocations. 3692 3693 -- : BFD_RELOC_ALPHA_GPDISP_HI16 3694 Alpha ECOFF and ELF relocations. Some of these treat the symbol or 3695 "addend" in some special way. For GPDISP_HI16 ("gpdisp") 3696 relocations, the symbol is ignored when writing; when reading, it 3697 will be the absolute section symbol. The addend is the 3698 displacement in bytes of the "lda" instruction from the "ldah" 3699 instruction (which is at the address of this reloc). 3700 3701 -- : BFD_RELOC_ALPHA_GPDISP_LO16 3702 For GPDISP_LO16 ("ignore") relocations, the symbol is handled as 3703 with GPDISP_HI16 relocs. The addend is ignored when writing the 3704 relocations out, and is filled in with the file's GP value on 3705 reading, for convenience. 3706 3707 -- : BFD_RELOC_ALPHA_GPDISP 3708 The ELF GPDISP relocation is exactly the same as the GPDISP_HI16 3709 relocation except that there is no accompanying GPDISP_LO16 3710 relocation. 3711 3712 -- : BFD_RELOC_ALPHA_LITERAL 3713 -- : BFD_RELOC_ALPHA_ELF_LITERAL 3714 -- : BFD_RELOC_ALPHA_LITUSE 3715 The Alpha LITERAL/LITUSE relocs are produced by a symbol reference; 3716 the assembler turns it into a LDQ instruction to load the address 3717 of the symbol, and then fills in a register in the real 3718 instruction. 3719 3720 The LITERAL reloc, at the LDQ instruction, refers to the .lita 3721 section symbol. The addend is ignored when writing, but is filled 3722 in with the file's GP value on reading, for convenience, as with 3723 the GPDISP_LO16 reloc. 3724 3725 The ELF_LITERAL reloc is somewhere between 16_GOTOFF and 3726 GPDISP_LO16. It should refer to the symbol to be referenced, as 3727 with 16_GOTOFF, but it generates output not based on the position 3728 within the .got section, but relative to the GP value chosen for 3729 the file during the final link stage. 3730 3731 The LITUSE reloc, on the instruction using the loaded address, 3732 gives information to the linker that it might be able to use to 3733 optimize away some literal section references. The symbol is 3734 ignored (read as the absolute section symbol), and the "addend" 3735 indicates the type of instruction using the register: 1 - "memory" 3736 fmt insn 2 - byte-manipulation (byte offset reg) 3 - jsr (target 3737 of branch) 3738 3739 -- : BFD_RELOC_ALPHA_HINT 3740 The HINT relocation indicates a value that should be filled into 3741 the "hint" field of a jmp/jsr/ret instruction, for possible branch- 3742 prediction logic which may be provided on some processors. 3743 3744 -- : BFD_RELOC_ALPHA_LINKAGE 3745 The LINKAGE relocation outputs a linkage pair in the object file, 3746 which is filled by the linker. 3747 3748 -- : BFD_RELOC_ALPHA_CODEADDR 3749 The CODEADDR relocation outputs a STO_CA in the object file, which 3750 is filled by the linker. 3751 3752 -- : BFD_RELOC_ALPHA_GPREL_HI16 3753 -- : BFD_RELOC_ALPHA_GPREL_LO16 3754 The GPREL_HI/LO relocations together form a 32-bit offset from the 3755 GP register. 3756 3757 -- : BFD_RELOC_ALPHA_BRSGP 3758 Like BFD_RELOC_23_PCREL_S2, except that the source and target must 3759 share a common GP, and the target address is adjusted for 3760 STO_ALPHA_STD_GPLOAD. 3761 3762 -- : BFD_RELOC_ALPHA_NOP 3763 The NOP relocation outputs a NOP if the longword displacement 3764 between two procedure entry points is < 2^21. 3765 3766 -- : BFD_RELOC_ALPHA_BSR 3767 The BSR relocation outputs a BSR if the longword displacement 3768 between two procedure entry points is < 2^21. 3769 3770 -- : BFD_RELOC_ALPHA_LDA 3771 The LDA relocation outputs a LDA if the longword displacement 3772 between two procedure entry points is < 2^16. 3773 3774 -- : BFD_RELOC_ALPHA_BOH 3775 The BOH relocation outputs a BSR if the longword displacement 3776 between two procedure entry points is < 2^21, or else a hint. 3777 3778 -- : BFD_RELOC_ALPHA_TLSGD 3779 -- : BFD_RELOC_ALPHA_TLSLDM 3780 -- : BFD_RELOC_ALPHA_DTPMOD64 3781 -- : BFD_RELOC_ALPHA_GOTDTPREL16 3782 -- : BFD_RELOC_ALPHA_DTPREL64 3783 -- : BFD_RELOC_ALPHA_DTPREL_HI16 3784 -- : BFD_RELOC_ALPHA_DTPREL_LO16 3785 -- : BFD_RELOC_ALPHA_DTPREL16 3786 -- : BFD_RELOC_ALPHA_GOTTPREL16 3787 -- : BFD_RELOC_ALPHA_TPREL64 3788 -- : BFD_RELOC_ALPHA_TPREL_HI16 3789 -- : BFD_RELOC_ALPHA_TPREL_LO16 3790 -- : BFD_RELOC_ALPHA_TPREL16 3791 Alpha thread-local storage relocations. 3792 3793 -- : BFD_RELOC_MIPS_JMP 3794 -- : BFD_RELOC_MICROMIPS_JMP 3795 The MIPS jump instruction. 3796 3797 -- : BFD_RELOC_MIPS16_JMP 3798 The MIPS16 jump instruction. 3799 3800 -- : BFD_RELOC_MIPS16_GPREL 3801 MIPS16 GP relative reloc. 3802 3803 -- : BFD_RELOC_HI16 3804 High 16 bits of 32-bit value; simple reloc. 3805 3806 -- : BFD_RELOC_HI16_S 3807 High 16 bits of 32-bit value but the low 16 bits will be sign 3808 extended and added to form the final result. If the low 16 bits 3809 form a negative number, we need to add one to the high value to 3810 compensate for the borrow when the low bits are added. 3811 3812 -- : BFD_RELOC_LO16 3813 Low 16 bits. 3814 3815 -- : BFD_RELOC_HI16_PCREL 3816 High 16 bits of 32-bit pc-relative value 3817 3818 -- : BFD_RELOC_HI16_S_PCREL 3819 High 16 bits of 32-bit pc-relative value, adjusted 3820 3821 -- : BFD_RELOC_LO16_PCREL 3822 Low 16 bits of pc-relative value 3823 3824 -- : BFD_RELOC_MIPS16_GOT16 3825 -- : BFD_RELOC_MIPS16_CALL16 3826 Equivalent of BFD_RELOC_MIPS_*, but with the MIPS16 layout of 3827 16-bit immediate fields 3828 3829 -- : BFD_RELOC_MIPS16_HI16 3830 MIPS16 high 16 bits of 32-bit value. 3831 3832 -- : BFD_RELOC_MIPS16_HI16_S 3833 MIPS16 high 16 bits of 32-bit value but the low 16 bits will be 3834 sign extended and added to form the final result. If the low 16 3835 bits form a negative number, we need to add one to the high value 3836 to compensate for the borrow when the low bits are added. 3837 3838 -- : BFD_RELOC_MIPS16_LO16 3839 MIPS16 low 16 bits. 3840 3841 -- : BFD_RELOC_MIPS16_TLS_GD 3842 -- : BFD_RELOC_MIPS16_TLS_LDM 3843 -- : BFD_RELOC_MIPS16_TLS_DTPREL_HI16 3844 -- : BFD_RELOC_MIPS16_TLS_DTPREL_LO16 3845 -- : BFD_RELOC_MIPS16_TLS_GOTTPREL 3846 -- : BFD_RELOC_MIPS16_TLS_TPREL_HI16 3847 -- : BFD_RELOC_MIPS16_TLS_TPREL_LO16 3848 MIPS16 TLS relocations 3849 3850 -- : BFD_RELOC_MIPS_LITERAL 3851 -- : BFD_RELOC_MICROMIPS_LITERAL 3852 Relocation against a MIPS literal section. 3853 3854 -- : BFD_RELOC_MICROMIPS_7_PCREL_S1 3855 -- : BFD_RELOC_MICROMIPS_10_PCREL_S1 3856 -- : BFD_RELOC_MICROMIPS_16_PCREL_S1 3857 microMIPS PC-relative relocations. 3858 3859 -- : BFD_RELOC_MIPS16_16_PCREL_S1 3860 MIPS16 PC-relative relocation. 3861 3862 -- : BFD_RELOC_MIPS_21_PCREL_S2 3863 -- : BFD_RELOC_MIPS_26_PCREL_S2 3864 -- : BFD_RELOC_MIPS_18_PCREL_S3 3865 -- : BFD_RELOC_MIPS_19_PCREL_S2 3866 MIPS PC-relative relocations. 3867 3868 -- : BFD_RELOC_MICROMIPS_GPREL16 3869 -- : BFD_RELOC_MICROMIPS_HI16 3870 -- : BFD_RELOC_MICROMIPS_HI16_S 3871 -- : BFD_RELOC_MICROMIPS_LO16 3872 microMIPS versions of generic BFD relocs. 3873 3874 -- : BFD_RELOC_MIPS_GOT16 3875 -- : BFD_RELOC_MICROMIPS_GOT16 3876 -- : BFD_RELOC_MIPS_CALL16 3877 -- : BFD_RELOC_MICROMIPS_CALL16 3878 -- : BFD_RELOC_MIPS_GOT_HI16 3879 -- : BFD_RELOC_MICROMIPS_GOT_HI16 3880 -- : BFD_RELOC_MIPS_GOT_LO16 3881 -- : BFD_RELOC_MICROMIPS_GOT_LO16 3882 -- : BFD_RELOC_MIPS_CALL_HI16 3883 -- : BFD_RELOC_MICROMIPS_CALL_HI16 3884 -- : BFD_RELOC_MIPS_CALL_LO16 3885 -- : BFD_RELOC_MICROMIPS_CALL_LO16 3886 -- : BFD_RELOC_MIPS_SUB 3887 -- : BFD_RELOC_MICROMIPS_SUB 3888 -- : BFD_RELOC_MIPS_GOT_PAGE 3889 -- : BFD_RELOC_MICROMIPS_GOT_PAGE 3890 -- : BFD_RELOC_MIPS_GOT_OFST 3891 -- : BFD_RELOC_MICROMIPS_GOT_OFST 3892 -- : BFD_RELOC_MIPS_GOT_DISP 3893 -- : BFD_RELOC_MICROMIPS_GOT_DISP 3894 -- : BFD_RELOC_MIPS_SHIFT5 3895 -- : BFD_RELOC_MIPS_SHIFT6 3896 -- : BFD_RELOC_MIPS_INSERT_A 3897 -- : BFD_RELOC_MIPS_INSERT_B 3898 -- : BFD_RELOC_MIPS_DELETE 3899 -- : BFD_RELOC_MIPS_HIGHEST 3900 -- : BFD_RELOC_MICROMIPS_HIGHEST 3901 -- : BFD_RELOC_MIPS_HIGHER 3902 -- : BFD_RELOC_MICROMIPS_HIGHER 3903 -- : BFD_RELOC_MIPS_SCN_DISP 3904 -- : BFD_RELOC_MICROMIPS_SCN_DISP 3905 -- : BFD_RELOC_MIPS_REL16 3906 -- : BFD_RELOC_MIPS_RELGOT 3907 -- : BFD_RELOC_MIPS_JALR 3908 -- : BFD_RELOC_MICROMIPS_JALR 3909 -- : BFD_RELOC_MIPS_TLS_DTPMOD32 3910 -- : BFD_RELOC_MIPS_TLS_DTPREL32 3911 -- : BFD_RELOC_MIPS_TLS_DTPMOD64 3912 -- : BFD_RELOC_MIPS_TLS_DTPREL64 3913 -- : BFD_RELOC_MIPS_TLS_GD 3914 -- : BFD_RELOC_MICROMIPS_TLS_GD 3915 -- : BFD_RELOC_MIPS_TLS_LDM 3916 -- : BFD_RELOC_MICROMIPS_TLS_LDM 3917 -- : BFD_RELOC_MIPS_TLS_DTPREL_HI16 3918 -- : BFD_RELOC_MICROMIPS_TLS_DTPREL_HI16 3919 -- : BFD_RELOC_MIPS_TLS_DTPREL_LO16 3920 -- : BFD_RELOC_MICROMIPS_TLS_DTPREL_LO16 3921 -- : BFD_RELOC_MIPS_TLS_GOTTPREL 3922 -- : BFD_RELOC_MICROMIPS_TLS_GOTTPREL 3923 -- : BFD_RELOC_MIPS_TLS_TPREL32 3924 -- : BFD_RELOC_MIPS_TLS_TPREL64 3925 -- : BFD_RELOC_MIPS_TLS_TPREL_HI16 3926 -- : BFD_RELOC_MICROMIPS_TLS_TPREL_HI16 3927 -- : BFD_RELOC_MIPS_TLS_TPREL_LO16 3928 -- : BFD_RELOC_MICROMIPS_TLS_TPREL_LO16 3929 -- : BFD_RELOC_MIPS_EH 3930 MIPS ELF relocations. 3931 3932 -- : BFD_RELOC_MIPS_COPY 3933 -- : BFD_RELOC_MIPS_JUMP_SLOT 3934 MIPS ELF relocations (VxWorks and PLT extensions). 3935 3936 -- : BFD_RELOC_MOXIE_10_PCREL 3937 Moxie ELF relocations. 3938 3939 -- : BFD_RELOC_FT32_10 3940 -- : BFD_RELOC_FT32_20 3941 -- : BFD_RELOC_FT32_17 3942 -- : BFD_RELOC_FT32_18 3943 FT32 ELF relocations. 3944 3945 -- : BFD_RELOC_FRV_LABEL16 3946 -- : BFD_RELOC_FRV_LABEL24 3947 -- : BFD_RELOC_FRV_LO16 3948 -- : BFD_RELOC_FRV_HI16 3949 -- : BFD_RELOC_FRV_GPREL12 3950 -- : BFD_RELOC_FRV_GPRELU12 3951 -- : BFD_RELOC_FRV_GPREL32 3952 -- : BFD_RELOC_FRV_GPRELHI 3953 -- : BFD_RELOC_FRV_GPRELLO 3954 -- : BFD_RELOC_FRV_GOT12 3955 -- : BFD_RELOC_FRV_GOTHI 3956 -- : BFD_RELOC_FRV_GOTLO 3957 -- : BFD_RELOC_FRV_FUNCDESC 3958 -- : BFD_RELOC_FRV_FUNCDESC_GOT12 3959 -- : BFD_RELOC_FRV_FUNCDESC_GOTHI 3960 -- : BFD_RELOC_FRV_FUNCDESC_GOTLO 3961 -- : BFD_RELOC_FRV_FUNCDESC_VALUE 3962 -- : BFD_RELOC_FRV_FUNCDESC_GOTOFF12 3963 -- : BFD_RELOC_FRV_FUNCDESC_GOTOFFHI 3964 -- : BFD_RELOC_FRV_FUNCDESC_GOTOFFLO 3965 -- : BFD_RELOC_FRV_GOTOFF12 3966 -- : BFD_RELOC_FRV_GOTOFFHI 3967 -- : BFD_RELOC_FRV_GOTOFFLO 3968 -- : BFD_RELOC_FRV_GETTLSOFF 3969 -- : BFD_RELOC_FRV_TLSDESC_VALUE 3970 -- : BFD_RELOC_FRV_GOTTLSDESC12 3971 -- : BFD_RELOC_FRV_GOTTLSDESCHI 3972 -- : BFD_RELOC_FRV_GOTTLSDESCLO 3973 -- : BFD_RELOC_FRV_TLSMOFF12 3974 -- : BFD_RELOC_FRV_TLSMOFFHI 3975 -- : BFD_RELOC_FRV_TLSMOFFLO 3976 -- : BFD_RELOC_FRV_GOTTLSOFF12 3977 -- : BFD_RELOC_FRV_GOTTLSOFFHI 3978 -- : BFD_RELOC_FRV_GOTTLSOFFLO 3979 -- : BFD_RELOC_FRV_TLSOFF 3980 -- : BFD_RELOC_FRV_TLSDESC_RELAX 3981 -- : BFD_RELOC_FRV_GETTLSOFF_RELAX 3982 -- : BFD_RELOC_FRV_TLSOFF_RELAX 3983 -- : BFD_RELOC_FRV_TLSMOFF 3984 Fujitsu Frv Relocations. 3985 3986 -- : BFD_RELOC_MN10300_GOTOFF24 3987 This is a 24bit GOT-relative reloc for the mn10300. 3988 3989 -- : BFD_RELOC_MN10300_GOT32 3990 This is a 32bit GOT-relative reloc for the mn10300, offset by two 3991 bytes in the instruction. 3992 3993 -- : BFD_RELOC_MN10300_GOT24 3994 This is a 24bit GOT-relative reloc for the mn10300, offset by two 3995 bytes in the instruction. 3996 3997 -- : BFD_RELOC_MN10300_GOT16 3998 This is a 16bit GOT-relative reloc for the mn10300, offset by two 3999 bytes in the instruction. 4000 4001 -- : BFD_RELOC_MN10300_COPY 4002 Copy symbol at runtime. 4003 4004 -- : BFD_RELOC_MN10300_GLOB_DAT 4005 Create GOT entry. 4006 4007 -- : BFD_RELOC_MN10300_JMP_SLOT 4008 Create PLT entry. 4009 4010 -- : BFD_RELOC_MN10300_RELATIVE 4011 Adjust by program base. 4012 4013 -- : BFD_RELOC_MN10300_SYM_DIFF 4014 Together with another reloc targeted at the same location, allows 4015 for a value that is the difference of two symbols in the same 4016 section. 4017 4018 -- : BFD_RELOC_MN10300_ALIGN 4019 The addend of this reloc is an alignment power that must be 4020 honoured at the offset's location, regardless of linker relaxation. 4021 4022 -- : BFD_RELOC_MN10300_TLS_GD 4023 -- : BFD_RELOC_MN10300_TLS_LD 4024 -- : BFD_RELOC_MN10300_TLS_LDO 4025 -- : BFD_RELOC_MN10300_TLS_GOTIE 4026 -- : BFD_RELOC_MN10300_TLS_IE 4027 -- : BFD_RELOC_MN10300_TLS_LE 4028 -- : BFD_RELOC_MN10300_TLS_DTPMOD 4029 -- : BFD_RELOC_MN10300_TLS_DTPOFF 4030 -- : BFD_RELOC_MN10300_TLS_TPOFF 4031 Various TLS-related relocations. 4032 4033 -- : BFD_RELOC_MN10300_32_PCREL 4034 This is a 32bit pcrel reloc for the mn10300, offset by two bytes 4035 in the instruction. 4036 4037 -- : BFD_RELOC_MN10300_16_PCREL 4038 This is a 16bit pcrel reloc for the mn10300, offset by two bytes 4039 in the instruction. 4040 4041 -- : BFD_RELOC_386_GOT32 4042 -- : BFD_RELOC_386_PLT32 4043 -- : BFD_RELOC_386_COPY 4044 -- : BFD_RELOC_386_GLOB_DAT 4045 -- : BFD_RELOC_386_JUMP_SLOT 4046 -- : BFD_RELOC_386_RELATIVE 4047 -- : BFD_RELOC_386_GOTOFF 4048 -- : BFD_RELOC_386_GOTPC 4049 -- : BFD_RELOC_386_TLS_TPOFF 4050 -- : BFD_RELOC_386_TLS_IE 4051 -- : BFD_RELOC_386_TLS_GOTIE 4052 -- : BFD_RELOC_386_TLS_LE 4053 -- : BFD_RELOC_386_TLS_GD 4054 -- : BFD_RELOC_386_TLS_LDM 4055 -- : BFD_RELOC_386_TLS_LDO_32 4056 -- : BFD_RELOC_386_TLS_IE_32 4057 -- : BFD_RELOC_386_TLS_LE_32 4058 -- : BFD_RELOC_386_TLS_DTPMOD32 4059 -- : BFD_RELOC_386_TLS_DTPOFF32 4060 -- : BFD_RELOC_386_TLS_TPOFF32 4061 -- : BFD_RELOC_386_TLS_GOTDESC 4062 -- : BFD_RELOC_386_TLS_DESC_CALL 4063 -- : BFD_RELOC_386_TLS_DESC 4064 -- : BFD_RELOC_386_IRELATIVE 4065 -- : BFD_RELOC_386_GOT32X 4066 i386/elf relocations 4067 4068 -- : BFD_RELOC_X86_64_GOT32 4069 -- : BFD_RELOC_X86_64_PLT32 4070 -- : BFD_RELOC_X86_64_COPY 4071 -- : BFD_RELOC_X86_64_GLOB_DAT 4072 -- : BFD_RELOC_X86_64_JUMP_SLOT 4073 -- : BFD_RELOC_X86_64_RELATIVE 4074 -- : BFD_RELOC_X86_64_GOTPCREL 4075 -- : BFD_RELOC_X86_64_32S 4076 -- : BFD_RELOC_X86_64_DTPMOD64 4077 -- : BFD_RELOC_X86_64_DTPOFF64 4078 -- : BFD_RELOC_X86_64_TPOFF64 4079 -- : BFD_RELOC_X86_64_TLSGD 4080 -- : BFD_RELOC_X86_64_TLSLD 4081 -- : BFD_RELOC_X86_64_DTPOFF32 4082 -- : BFD_RELOC_X86_64_GOTTPOFF 4083 -- : BFD_RELOC_X86_64_TPOFF32 4084 -- : BFD_RELOC_X86_64_GOTOFF64 4085 -- : BFD_RELOC_X86_64_GOTPC32 4086 -- : BFD_RELOC_X86_64_GOT64 4087 -- : BFD_RELOC_X86_64_GOTPCREL64 4088 -- : BFD_RELOC_X86_64_GOTPC64 4089 -- : BFD_RELOC_X86_64_GOTPLT64 4090 -- : BFD_RELOC_X86_64_PLTOFF64 4091 -- : BFD_RELOC_X86_64_GOTPC32_TLSDESC 4092 -- : BFD_RELOC_X86_64_TLSDESC_CALL 4093 -- : BFD_RELOC_X86_64_TLSDESC 4094 -- : BFD_RELOC_X86_64_IRELATIVE 4095 -- : BFD_RELOC_X86_64_PC32_BND 4096 -- : BFD_RELOC_X86_64_PLT32_BND 4097 -- : BFD_RELOC_X86_64_GOTPCRELX 4098 -- : BFD_RELOC_X86_64_REX_GOTPCRELX 4099 x86-64/elf relocations 4100 4101 -- : BFD_RELOC_NS32K_IMM_8 4102 -- : BFD_RELOC_NS32K_IMM_16 4103 -- : BFD_RELOC_NS32K_IMM_32 4104 -- : BFD_RELOC_NS32K_IMM_8_PCREL 4105 -- : BFD_RELOC_NS32K_IMM_16_PCREL 4106 -- : BFD_RELOC_NS32K_IMM_32_PCREL 4107 -- : BFD_RELOC_NS32K_DISP_8 4108 -- : BFD_RELOC_NS32K_DISP_16 4109 -- : BFD_RELOC_NS32K_DISP_32 4110 -- : BFD_RELOC_NS32K_DISP_8_PCREL 4111 -- : BFD_RELOC_NS32K_DISP_16_PCREL 4112 -- : BFD_RELOC_NS32K_DISP_32_PCREL 4113 ns32k relocations 4114 4115 -- : BFD_RELOC_PDP11_DISP_8_PCREL 4116 -- : BFD_RELOC_PDP11_DISP_6_PCREL 4117 PDP11 relocations 4118 4119 -- : BFD_RELOC_PJ_CODE_HI16 4120 -- : BFD_RELOC_PJ_CODE_LO16 4121 -- : BFD_RELOC_PJ_CODE_DIR16 4122 -- : BFD_RELOC_PJ_CODE_DIR32 4123 -- : BFD_RELOC_PJ_CODE_REL16 4124 -- : BFD_RELOC_PJ_CODE_REL32 4125 Picojava relocs. Not all of these appear in object files. 4126 4127 -- : BFD_RELOC_PPC_B26 4128 -- : BFD_RELOC_PPC_BA26 4129 -- : BFD_RELOC_PPC_TOC16 4130 -- : BFD_RELOC_PPC_B16 4131 -- : BFD_RELOC_PPC_B16_BRTAKEN 4132 -- : BFD_RELOC_PPC_B16_BRNTAKEN 4133 -- : BFD_RELOC_PPC_BA16 4134 -- : BFD_RELOC_PPC_BA16_BRTAKEN 4135 -- : BFD_RELOC_PPC_BA16_BRNTAKEN 4136 -- : BFD_RELOC_PPC_COPY 4137 -- : BFD_RELOC_PPC_GLOB_DAT 4138 -- : BFD_RELOC_PPC_JMP_SLOT 4139 -- : BFD_RELOC_PPC_RELATIVE 4140 -- : BFD_RELOC_PPC_LOCAL24PC 4141 -- : BFD_RELOC_PPC_EMB_NADDR32 4142 -- : BFD_RELOC_PPC_EMB_NADDR16 4143 -- : BFD_RELOC_PPC_EMB_NADDR16_LO 4144 -- : BFD_RELOC_PPC_EMB_NADDR16_HI 4145 -- : BFD_RELOC_PPC_EMB_NADDR16_HA 4146 -- : BFD_RELOC_PPC_EMB_SDAI16 4147 -- : BFD_RELOC_PPC_EMB_SDA2I16 4148 -- : BFD_RELOC_PPC_EMB_SDA2REL 4149 -- : BFD_RELOC_PPC_EMB_SDA21 4150 -- : BFD_RELOC_PPC_EMB_MRKREF 4151 -- : BFD_RELOC_PPC_EMB_RELSEC16 4152 -- : BFD_RELOC_PPC_EMB_RELST_LO 4153 -- : BFD_RELOC_PPC_EMB_RELST_HI 4154 -- : BFD_RELOC_PPC_EMB_RELST_HA 4155 -- : BFD_RELOC_PPC_EMB_BIT_FLD 4156 -- : BFD_RELOC_PPC_EMB_RELSDA 4157 -- : BFD_RELOC_PPC_VLE_REL8 4158 -- : BFD_RELOC_PPC_VLE_REL15 4159 -- : BFD_RELOC_PPC_VLE_REL24 4160 -- : BFD_RELOC_PPC_VLE_LO16A 4161 -- : BFD_RELOC_PPC_VLE_LO16D 4162 -- : BFD_RELOC_PPC_VLE_HI16A 4163 -- : BFD_RELOC_PPC_VLE_HI16D 4164 -- : BFD_RELOC_PPC_VLE_HA16A 4165 -- : BFD_RELOC_PPC_VLE_HA16D 4166 -- : BFD_RELOC_PPC_VLE_SDA21 4167 -- : BFD_RELOC_PPC_VLE_SDA21_LO 4168 -- : BFD_RELOC_PPC_VLE_SDAREL_LO16A 4169 -- : BFD_RELOC_PPC_VLE_SDAREL_LO16D 4170 -- : BFD_RELOC_PPC_VLE_SDAREL_HI16A 4171 -- : BFD_RELOC_PPC_VLE_SDAREL_HI16D 4172 -- : BFD_RELOC_PPC_VLE_SDAREL_HA16A 4173 -- : BFD_RELOC_PPC_VLE_SDAREL_HA16D 4174 -- : BFD_RELOC_PPC_16DX_HA 4175 -- : BFD_RELOC_PPC_REL16DX_HA 4176 -- : BFD_RELOC_PPC64_HIGHER 4177 -- : BFD_RELOC_PPC64_HIGHER_S 4178 -- : BFD_RELOC_PPC64_HIGHEST 4179 -- : BFD_RELOC_PPC64_HIGHEST_S 4180 -- : BFD_RELOC_PPC64_TOC16_LO 4181 -- : BFD_RELOC_PPC64_TOC16_HI 4182 -- : BFD_RELOC_PPC64_TOC16_HA 4183 -- : BFD_RELOC_PPC64_TOC 4184 -- : BFD_RELOC_PPC64_PLTGOT16 4185 -- : BFD_RELOC_PPC64_PLTGOT16_LO 4186 -- : BFD_RELOC_PPC64_PLTGOT16_HI 4187 -- : BFD_RELOC_PPC64_PLTGOT16_HA 4188 -- : BFD_RELOC_PPC64_ADDR16_DS 4189 -- : BFD_RELOC_PPC64_ADDR16_LO_DS 4190 -- : BFD_RELOC_PPC64_GOT16_DS 4191 -- : BFD_RELOC_PPC64_GOT16_LO_DS 4192 -- : BFD_RELOC_PPC64_PLT16_LO_DS 4193 -- : BFD_RELOC_PPC64_SECTOFF_DS 4194 -- : BFD_RELOC_PPC64_SECTOFF_LO_DS 4195 -- : BFD_RELOC_PPC64_TOC16_DS 4196 -- : BFD_RELOC_PPC64_TOC16_LO_DS 4197 -- : BFD_RELOC_PPC64_PLTGOT16_DS 4198 -- : BFD_RELOC_PPC64_PLTGOT16_LO_DS 4199 -- : BFD_RELOC_PPC64_ADDR16_HIGH 4200 -- : BFD_RELOC_PPC64_ADDR16_HIGHA 4201 -- : BFD_RELOC_PPC64_ADDR64_LOCAL 4202 -- : BFD_RELOC_PPC64_ENTRY 4203 Power(rs6000) and PowerPC relocations. 4204 4205 -- : BFD_RELOC_PPC_TLS 4206 -- : BFD_RELOC_PPC_TLSGD 4207 -- : BFD_RELOC_PPC_TLSLD 4208 -- : BFD_RELOC_PPC_DTPMOD 4209 -- : BFD_RELOC_PPC_TPREL16 4210 -- : BFD_RELOC_PPC_TPREL16_LO 4211 -- : BFD_RELOC_PPC_TPREL16_HI 4212 -- : BFD_RELOC_PPC_TPREL16_HA 4213 -- : BFD_RELOC_PPC_TPREL 4214 -- : BFD_RELOC_PPC_DTPREL16 4215 -- : BFD_RELOC_PPC_DTPREL16_LO 4216 -- : BFD_RELOC_PPC_DTPREL16_HI 4217 -- : BFD_RELOC_PPC_DTPREL16_HA 4218 -- : BFD_RELOC_PPC_DTPREL 4219 -- : BFD_RELOC_PPC_GOT_TLSGD16 4220 -- : BFD_RELOC_PPC_GOT_TLSGD16_LO 4221 -- : BFD_RELOC_PPC_GOT_TLSGD16_HI 4222 -- : BFD_RELOC_PPC_GOT_TLSGD16_HA 4223 -- : BFD_RELOC_PPC_GOT_TLSLD16 4224 -- : BFD_RELOC_PPC_GOT_TLSLD16_LO 4225 -- : BFD_RELOC_PPC_GOT_TLSLD16_HI 4226 -- : BFD_RELOC_PPC_GOT_TLSLD16_HA 4227 -- : BFD_RELOC_PPC_GOT_TPREL16 4228 -- : BFD_RELOC_PPC_GOT_TPREL16_LO 4229 -- : BFD_RELOC_PPC_GOT_TPREL16_HI 4230 -- : BFD_RELOC_PPC_GOT_TPREL16_HA 4231 -- : BFD_RELOC_PPC_GOT_DTPREL16 4232 -- : BFD_RELOC_PPC_GOT_DTPREL16_LO 4233 -- : BFD_RELOC_PPC_GOT_DTPREL16_HI 4234 -- : BFD_RELOC_PPC_GOT_DTPREL16_HA 4235 -- : BFD_RELOC_PPC64_TPREL16_DS 4236 -- : BFD_RELOC_PPC64_TPREL16_LO_DS 4237 -- : BFD_RELOC_PPC64_TPREL16_HIGHER 4238 -- : BFD_RELOC_PPC64_TPREL16_HIGHERA 4239 -- : BFD_RELOC_PPC64_TPREL16_HIGHEST 4240 -- : BFD_RELOC_PPC64_TPREL16_HIGHESTA 4241 -- : BFD_RELOC_PPC64_DTPREL16_DS 4242 -- : BFD_RELOC_PPC64_DTPREL16_LO_DS 4243 -- : BFD_RELOC_PPC64_DTPREL16_HIGHER 4244 -- : BFD_RELOC_PPC64_DTPREL16_HIGHERA 4245 -- : BFD_RELOC_PPC64_DTPREL16_HIGHEST 4246 -- : BFD_RELOC_PPC64_DTPREL16_HIGHESTA 4247 -- : BFD_RELOC_PPC64_TPREL16_HIGH 4248 -- : BFD_RELOC_PPC64_TPREL16_HIGHA 4249 -- : BFD_RELOC_PPC64_DTPREL16_HIGH 4250 -- : BFD_RELOC_PPC64_DTPREL16_HIGHA 4251 PowerPC and PowerPC64 thread-local storage relocations. 4252 4253 -- : BFD_RELOC_I370_D12 4254 IBM 370/390 relocations 4255 4256 -- : BFD_RELOC_CTOR 4257 The type of reloc used to build a constructor table - at the moment 4258 probably a 32 bit wide absolute relocation, but the target can 4259 choose. It generally does map to one of the other relocation 4260 types. 4261 4262 -- : BFD_RELOC_ARM_PCREL_BRANCH 4263 ARM 26 bit pc-relative branch. The lowest two bits must be zero 4264 and are not stored in the instruction. 4265 4266 -- : BFD_RELOC_ARM_PCREL_BLX 4267 ARM 26 bit pc-relative branch. The lowest bit must be zero and is 4268 not stored in the instruction. The 2nd lowest bit comes from a 1 4269 bit field in the instruction. 4270 4271 -- : BFD_RELOC_THUMB_PCREL_BLX 4272 Thumb 22 bit pc-relative branch. The lowest bit must be zero and 4273 is not stored in the instruction. The 2nd lowest bit comes from a 4274 1 bit field in the instruction. 4275 4276 -- : BFD_RELOC_ARM_PCREL_CALL 4277 ARM 26-bit pc-relative branch for an unconditional BL or BLX 4278 instruction. 4279 4280 -- : BFD_RELOC_ARM_PCREL_JUMP 4281 ARM 26-bit pc-relative branch for B or conditional BL instruction. 4282 4283 -- : BFD_RELOC_THUMB_PCREL_BRANCH7 4284 -- : BFD_RELOC_THUMB_PCREL_BRANCH9 4285 -- : BFD_RELOC_THUMB_PCREL_BRANCH12 4286 -- : BFD_RELOC_THUMB_PCREL_BRANCH20 4287 -- : BFD_RELOC_THUMB_PCREL_BRANCH23 4288 -- : BFD_RELOC_THUMB_PCREL_BRANCH25 4289 Thumb 7-, 9-, 12-, 20-, 23-, and 25-bit pc-relative branches. The 4290 lowest bit must be zero and is not stored in the instruction. 4291 Note that the corresponding ELF R_ARM_THM_JUMPnn constant has an 4292 "nn" one smaller in all cases. Note further that BRANCH23 4293 corresponds to R_ARM_THM_CALL. 4294 4295 -- : BFD_RELOC_ARM_OFFSET_IMM 4296 12-bit immediate offset, used in ARM-format ldr and str 4297 instructions. 4298 4299 -- : BFD_RELOC_ARM_THUMB_OFFSET 4300 5-bit immediate offset, used in Thumb-format ldr and str 4301 instructions. 4302 4303 -- : BFD_RELOC_ARM_TARGET1 4304 Pc-relative or absolute relocation depending on target. Used for 4305 entries in .init_array sections. 4306 4307 -- : BFD_RELOC_ARM_ROSEGREL32 4308 Read-only segment base relative address. 4309 4310 -- : BFD_RELOC_ARM_SBREL32 4311 Data segment base relative address. 4312 4313 -- : BFD_RELOC_ARM_TARGET2 4314 This reloc is used for references to RTTI data from exception 4315 handling tables. The actual definition depends on the target. It 4316 may be a pc-relative or some form of GOT-indirect relocation. 4317 4318 -- : BFD_RELOC_ARM_PREL31 4319 31-bit PC relative address. 4320 4321 -- : BFD_RELOC_ARM_MOVW 4322 -- : BFD_RELOC_ARM_MOVT 4323 -- : BFD_RELOC_ARM_MOVW_PCREL 4324 -- : BFD_RELOC_ARM_MOVT_PCREL 4325 -- : BFD_RELOC_ARM_THUMB_MOVW 4326 -- : BFD_RELOC_ARM_THUMB_MOVT 4327 -- : BFD_RELOC_ARM_THUMB_MOVW_PCREL 4328 -- : BFD_RELOC_ARM_THUMB_MOVT_PCREL 4329 Low and High halfword relocations for MOVW and MOVT instructions. 4330 4331 -- : BFD_RELOC_ARM_JUMP_SLOT 4332 -- : BFD_RELOC_ARM_GLOB_DAT 4333 -- : BFD_RELOC_ARM_GOT32 4334 -- : BFD_RELOC_ARM_PLT32 4335 -- : BFD_RELOC_ARM_RELATIVE 4336 -- : BFD_RELOC_ARM_GOTOFF 4337 -- : BFD_RELOC_ARM_GOTPC 4338 -- : BFD_RELOC_ARM_GOT_PREL 4339 Relocations for setting up GOTs and PLTs for shared libraries. 4340 4341 -- : BFD_RELOC_ARM_TLS_GD32 4342 -- : BFD_RELOC_ARM_TLS_LDO32 4343 -- : BFD_RELOC_ARM_TLS_LDM32 4344 -- : BFD_RELOC_ARM_TLS_DTPOFF32 4345 -- : BFD_RELOC_ARM_TLS_DTPMOD32 4346 -- : BFD_RELOC_ARM_TLS_TPOFF32 4347 -- : BFD_RELOC_ARM_TLS_IE32 4348 -- : BFD_RELOC_ARM_TLS_LE32 4349 -- : BFD_RELOC_ARM_TLS_GOTDESC 4350 -- : BFD_RELOC_ARM_TLS_CALL 4351 -- : BFD_RELOC_ARM_THM_TLS_CALL 4352 -- : BFD_RELOC_ARM_TLS_DESCSEQ 4353 -- : BFD_RELOC_ARM_THM_TLS_DESCSEQ 4354 -- : BFD_RELOC_ARM_TLS_DESC 4355 ARM thread-local storage relocations. 4356 4357 -- : BFD_RELOC_ARM_ALU_PC_G0_NC 4358 -- : BFD_RELOC_ARM_ALU_PC_G0 4359 -- : BFD_RELOC_ARM_ALU_PC_G1_NC 4360 -- : BFD_RELOC_ARM_ALU_PC_G1 4361 -- : BFD_RELOC_ARM_ALU_PC_G2 4362 -- : BFD_RELOC_ARM_LDR_PC_G0 4363 -- : BFD_RELOC_ARM_LDR_PC_G1 4364 -- : BFD_RELOC_ARM_LDR_PC_G2 4365 -- : BFD_RELOC_ARM_LDRS_PC_G0 4366 -- : BFD_RELOC_ARM_LDRS_PC_G1 4367 -- : BFD_RELOC_ARM_LDRS_PC_G2 4368 -- : BFD_RELOC_ARM_LDC_PC_G0 4369 -- : BFD_RELOC_ARM_LDC_PC_G1 4370 -- : BFD_RELOC_ARM_LDC_PC_G2 4371 -- : BFD_RELOC_ARM_ALU_SB_G0_NC 4372 -- : BFD_RELOC_ARM_ALU_SB_G0 4373 -- : BFD_RELOC_ARM_ALU_SB_G1_NC 4374 -- : BFD_RELOC_ARM_ALU_SB_G1 4375 -- : BFD_RELOC_ARM_ALU_SB_G2 4376 -- : BFD_RELOC_ARM_LDR_SB_G0 4377 -- : BFD_RELOC_ARM_LDR_SB_G1 4378 -- : BFD_RELOC_ARM_LDR_SB_G2 4379 -- : BFD_RELOC_ARM_LDRS_SB_G0 4380 -- : BFD_RELOC_ARM_LDRS_SB_G1 4381 -- : BFD_RELOC_ARM_LDRS_SB_G2 4382 -- : BFD_RELOC_ARM_LDC_SB_G0 4383 -- : BFD_RELOC_ARM_LDC_SB_G1 4384 -- : BFD_RELOC_ARM_LDC_SB_G2 4385 ARM group relocations. 4386 4387 -- : BFD_RELOC_ARM_V4BX 4388 Annotation of BX instructions. 4389 4390 -- : BFD_RELOC_ARM_IRELATIVE 4391 ARM support for STT_GNU_IFUNC. 4392 4393 -- : BFD_RELOC_ARM_THUMB_ALU_ABS_G0_NC 4394 -- : BFD_RELOC_ARM_THUMB_ALU_ABS_G1_NC 4395 -- : BFD_RELOC_ARM_THUMB_ALU_ABS_G2_NC 4396 -- : BFD_RELOC_ARM_THUMB_ALU_ABS_G3_NC 4397 Thumb1 relocations to support execute-only code. 4398 4399 -- : BFD_RELOC_ARM_IMMEDIATE 4400 -- : BFD_RELOC_ARM_ADRL_IMMEDIATE 4401 -- : BFD_RELOC_ARM_T32_IMMEDIATE 4402 -- : BFD_RELOC_ARM_T32_ADD_IMM 4403 -- : BFD_RELOC_ARM_T32_IMM12 4404 -- : BFD_RELOC_ARM_T32_ADD_PC12 4405 -- : BFD_RELOC_ARM_SHIFT_IMM 4406 -- : BFD_RELOC_ARM_SMC 4407 -- : BFD_RELOC_ARM_HVC 4408 -- : BFD_RELOC_ARM_SWI 4409 -- : BFD_RELOC_ARM_MULTI 4410 -- : BFD_RELOC_ARM_CP_OFF_IMM 4411 -- : BFD_RELOC_ARM_CP_OFF_IMM_S2 4412 -- : BFD_RELOC_ARM_T32_CP_OFF_IMM 4413 -- : BFD_RELOC_ARM_T32_CP_OFF_IMM_S2 4414 -- : BFD_RELOC_ARM_ADR_IMM 4415 -- : BFD_RELOC_ARM_LDR_IMM 4416 -- : BFD_RELOC_ARM_LITERAL 4417 -- : BFD_RELOC_ARM_IN_POOL 4418 -- : BFD_RELOC_ARM_OFFSET_IMM8 4419 -- : BFD_RELOC_ARM_T32_OFFSET_U8 4420 -- : BFD_RELOC_ARM_T32_OFFSET_IMM 4421 -- : BFD_RELOC_ARM_HWLITERAL 4422 -- : BFD_RELOC_ARM_THUMB_ADD 4423 -- : BFD_RELOC_ARM_THUMB_IMM 4424 -- : BFD_RELOC_ARM_THUMB_SHIFT 4425 These relocs are only used within the ARM assembler. They are not 4426 (at present) written to any object files. 4427 4428 -- : BFD_RELOC_SH_PCDISP8BY2 4429 -- : BFD_RELOC_SH_PCDISP12BY2 4430 -- : BFD_RELOC_SH_IMM3 4431 -- : BFD_RELOC_SH_IMM3U 4432 -- : BFD_RELOC_SH_DISP12 4433 -- : BFD_RELOC_SH_DISP12BY2 4434 -- : BFD_RELOC_SH_DISP12BY4 4435 -- : BFD_RELOC_SH_DISP12BY8 4436 -- : BFD_RELOC_SH_DISP20 4437 -- : BFD_RELOC_SH_DISP20BY8 4438 -- : BFD_RELOC_SH_IMM4 4439 -- : BFD_RELOC_SH_IMM4BY2 4440 -- : BFD_RELOC_SH_IMM4BY4 4441 -- : BFD_RELOC_SH_IMM8 4442 -- : BFD_RELOC_SH_IMM8BY2 4443 -- : BFD_RELOC_SH_IMM8BY4 4444 -- : BFD_RELOC_SH_PCRELIMM8BY2 4445 -- : BFD_RELOC_SH_PCRELIMM8BY4 4446 -- : BFD_RELOC_SH_SWITCH16 4447 -- : BFD_RELOC_SH_SWITCH32 4448 -- : BFD_RELOC_SH_USES 4449 -- : BFD_RELOC_SH_COUNT 4450 -- : BFD_RELOC_SH_ALIGN 4451 -- : BFD_RELOC_SH_CODE 4452 -- : BFD_RELOC_SH_DATA 4453 -- : BFD_RELOC_SH_LABEL 4454 -- : BFD_RELOC_SH_LOOP_START 4455 -- : BFD_RELOC_SH_LOOP_END 4456 -- : BFD_RELOC_SH_COPY 4457 -- : BFD_RELOC_SH_GLOB_DAT 4458 -- : BFD_RELOC_SH_JMP_SLOT 4459 -- : BFD_RELOC_SH_RELATIVE 4460 -- : BFD_RELOC_SH_GOTPC 4461 -- : BFD_RELOC_SH_GOT_LOW16 4462 -- : BFD_RELOC_SH_GOT_MEDLOW16 4463 -- : BFD_RELOC_SH_GOT_MEDHI16 4464 -- : BFD_RELOC_SH_GOT_HI16 4465 -- : BFD_RELOC_SH_GOTPLT_LOW16 4466 -- : BFD_RELOC_SH_GOTPLT_MEDLOW16 4467 -- : BFD_RELOC_SH_GOTPLT_MEDHI16 4468 -- : BFD_RELOC_SH_GOTPLT_HI16 4469 -- : BFD_RELOC_SH_PLT_LOW16 4470 -- : BFD_RELOC_SH_PLT_MEDLOW16 4471 -- : BFD_RELOC_SH_PLT_MEDHI16 4472 -- : BFD_RELOC_SH_PLT_HI16 4473 -- : BFD_RELOC_SH_GOTOFF_LOW16 4474 -- : BFD_RELOC_SH_GOTOFF_MEDLOW16 4475 -- : BFD_RELOC_SH_GOTOFF_MEDHI16 4476 -- : BFD_RELOC_SH_GOTOFF_HI16 4477 -- : BFD_RELOC_SH_GOTPC_LOW16 4478 -- : BFD_RELOC_SH_GOTPC_MEDLOW16 4479 -- : BFD_RELOC_SH_GOTPC_MEDHI16 4480 -- : BFD_RELOC_SH_GOTPC_HI16 4481 -- : BFD_RELOC_SH_COPY64 4482 -- : BFD_RELOC_SH_GLOB_DAT64 4483 -- : BFD_RELOC_SH_JMP_SLOT64 4484 -- : BFD_RELOC_SH_RELATIVE64 4485 -- : BFD_RELOC_SH_GOT10BY4 4486 -- : BFD_RELOC_SH_GOT10BY8 4487 -- : BFD_RELOC_SH_GOTPLT10BY4 4488 -- : BFD_RELOC_SH_GOTPLT10BY8 4489 -- : BFD_RELOC_SH_GOTPLT32 4490 -- : BFD_RELOC_SH_SHMEDIA_CODE 4491 -- : BFD_RELOC_SH_IMMU5 4492 -- : BFD_RELOC_SH_IMMS6 4493 -- : BFD_RELOC_SH_IMMS6BY32 4494 -- : BFD_RELOC_SH_IMMU6 4495 -- : BFD_RELOC_SH_IMMS10 4496 -- : BFD_RELOC_SH_IMMS10BY2 4497 -- : BFD_RELOC_SH_IMMS10BY4 4498 -- : BFD_RELOC_SH_IMMS10BY8 4499 -- : BFD_RELOC_SH_IMMS16 4500 -- : BFD_RELOC_SH_IMMU16 4501 -- : BFD_RELOC_SH_IMM_LOW16 4502 -- : BFD_RELOC_SH_IMM_LOW16_PCREL 4503 -- : BFD_RELOC_SH_IMM_MEDLOW16 4504 -- : BFD_RELOC_SH_IMM_MEDLOW16_PCREL 4505 -- : BFD_RELOC_SH_IMM_MEDHI16 4506 -- : BFD_RELOC_SH_IMM_MEDHI16_PCREL 4507 -- : BFD_RELOC_SH_IMM_HI16 4508 -- : BFD_RELOC_SH_IMM_HI16_PCREL 4509 -- : BFD_RELOC_SH_PT_16 4510 -- : BFD_RELOC_SH_TLS_GD_32 4511 -- : BFD_RELOC_SH_TLS_LD_32 4512 -- : BFD_RELOC_SH_TLS_LDO_32 4513 -- : BFD_RELOC_SH_TLS_IE_32 4514 -- : BFD_RELOC_SH_TLS_LE_32 4515 -- : BFD_RELOC_SH_TLS_DTPMOD32 4516 -- : BFD_RELOC_SH_TLS_DTPOFF32 4517 -- : BFD_RELOC_SH_TLS_TPOFF32 4518 -- : BFD_RELOC_SH_GOT20 4519 -- : BFD_RELOC_SH_GOTOFF20 4520 -- : BFD_RELOC_SH_GOTFUNCDESC 4521 -- : BFD_RELOC_SH_GOTFUNCDESC20 4522 -- : BFD_RELOC_SH_GOTOFFFUNCDESC 4523 -- : BFD_RELOC_SH_GOTOFFFUNCDESC20 4524 -- : BFD_RELOC_SH_FUNCDESC 4525 Renesas / SuperH SH relocs. Not all of these appear in object 4526 files. 4527 4528 -- : BFD_RELOC_ARC_NONE 4529 -- : BFD_RELOC_ARC_8 4530 -- : BFD_RELOC_ARC_16 4531 -- : BFD_RELOC_ARC_24 4532 -- : BFD_RELOC_ARC_32 4533 -- : BFD_RELOC_ARC_N8 4534 -- : BFD_RELOC_ARC_N16 4535 -- : BFD_RELOC_ARC_N24 4536 -- : BFD_RELOC_ARC_N32 4537 -- : BFD_RELOC_ARC_SDA 4538 -- : BFD_RELOC_ARC_SECTOFF 4539 -- : BFD_RELOC_ARC_S21H_PCREL 4540 -- : BFD_RELOC_ARC_S21W_PCREL 4541 -- : BFD_RELOC_ARC_S25H_PCREL 4542 -- : BFD_RELOC_ARC_S25W_PCREL 4543 -- : BFD_RELOC_ARC_SDA32 4544 -- : BFD_RELOC_ARC_SDA_LDST 4545 -- : BFD_RELOC_ARC_SDA_LDST1 4546 -- : BFD_RELOC_ARC_SDA_LDST2 4547 -- : BFD_RELOC_ARC_SDA16_LD 4548 -- : BFD_RELOC_ARC_SDA16_LD1 4549 -- : BFD_RELOC_ARC_SDA16_LD2 4550 -- : BFD_RELOC_ARC_S13_PCREL 4551 -- : BFD_RELOC_ARC_W 4552 -- : BFD_RELOC_ARC_32_ME 4553 -- : BFD_RELOC_ARC_32_ME_S 4554 -- : BFD_RELOC_ARC_N32_ME 4555 -- : BFD_RELOC_ARC_SECTOFF_ME 4556 -- : BFD_RELOC_ARC_SDA32_ME 4557 -- : BFD_RELOC_ARC_W_ME 4558 -- : BFD_RELOC_AC_SECTOFF_U8 4559 -- : BFD_RELOC_AC_SECTOFF_U8_1 4560 -- : BFD_RELOC_AC_SECTOFF_U8_2 4561 -- : BFD_RELOC_AC_SECTOFF_S9 4562 -- : BFD_RELOC_AC_SECTOFF_S9_1 4563 -- : BFD_RELOC_AC_SECTOFF_S9_2 4564 -- : BFD_RELOC_ARC_SECTOFF_ME_1 4565 -- : BFD_RELOC_ARC_SECTOFF_ME_2 4566 -- : BFD_RELOC_ARC_SECTOFF_1 4567 -- : BFD_RELOC_ARC_SECTOFF_2 4568 -- : BFD_RELOC_ARC_SDA_12 4569 -- : BFD_RELOC_ARC_SDA16_ST2 4570 -- : BFD_RELOC_ARC_32_PCREL 4571 -- : BFD_RELOC_ARC_PC32 4572 -- : BFD_RELOC_ARC_GOT32 4573 -- : BFD_RELOC_ARC_GOTPC32 4574 -- : BFD_RELOC_ARC_PLT32 4575 -- : BFD_RELOC_ARC_COPY 4576 -- : BFD_RELOC_ARC_GLOB_DAT 4577 -- : BFD_RELOC_ARC_JMP_SLOT 4578 -- : BFD_RELOC_ARC_RELATIVE 4579 -- : BFD_RELOC_ARC_GOTOFF 4580 -- : BFD_RELOC_ARC_GOTPC 4581 -- : BFD_RELOC_ARC_S21W_PCREL_PLT 4582 -- : BFD_RELOC_ARC_S25H_PCREL_PLT 4583 -- : BFD_RELOC_ARC_TLS_DTPMOD 4584 -- : BFD_RELOC_ARC_TLS_TPOFF 4585 -- : BFD_RELOC_ARC_TLS_GD_GOT 4586 -- : BFD_RELOC_ARC_TLS_GD_LD 4587 -- : BFD_RELOC_ARC_TLS_GD_CALL 4588 -- : BFD_RELOC_ARC_TLS_IE_GOT 4589 -- : BFD_RELOC_ARC_TLS_DTPOFF 4590 -- : BFD_RELOC_ARC_TLS_DTPOFF_S9 4591 -- : BFD_RELOC_ARC_TLS_LE_S9 4592 -- : BFD_RELOC_ARC_TLS_LE_32 4593 -- : BFD_RELOC_ARC_S25W_PCREL_PLT 4594 -- : BFD_RELOC_ARC_S21H_PCREL_PLT 4595 -- : BFD_RELOC_ARC_NPS_CMEM16 4596 ARC relocs. 4597 4598 -- : BFD_RELOC_BFIN_16_IMM 4599 ADI Blackfin 16 bit immediate absolute reloc. 4600 4601 -- : BFD_RELOC_BFIN_16_HIGH 4602 ADI Blackfin 16 bit immediate absolute reloc higher 16 bits. 4603 4604 -- : BFD_RELOC_BFIN_4_PCREL 4605 ADI Blackfin 'a' part of LSETUP. 4606 4607 -- : BFD_RELOC_BFIN_5_PCREL 4608 ADI Blackfin. 4609 4610 -- : BFD_RELOC_BFIN_16_LOW 4611 ADI Blackfin 16 bit immediate absolute reloc lower 16 bits. 4612 4613 -- : BFD_RELOC_BFIN_10_PCREL 4614 ADI Blackfin. 4615 4616 -- : BFD_RELOC_BFIN_11_PCREL 4617 ADI Blackfin 'b' part of LSETUP. 4618 4619 -- : BFD_RELOC_BFIN_12_PCREL_JUMP 4620 ADI Blackfin. 4621 4622 -- : BFD_RELOC_BFIN_12_PCREL_JUMP_S 4623 ADI Blackfin Short jump, pcrel. 4624 4625 -- : BFD_RELOC_BFIN_24_PCREL_CALL_X 4626 ADI Blackfin Call.x not implemented. 4627 4628 -- : BFD_RELOC_BFIN_24_PCREL_JUMP_L 4629 ADI Blackfin Long Jump pcrel. 4630 4631 -- : BFD_RELOC_BFIN_GOT17M4 4632 -- : BFD_RELOC_BFIN_GOTHI 4633 -- : BFD_RELOC_BFIN_GOTLO 4634 -- : BFD_RELOC_BFIN_FUNCDESC 4635 -- : BFD_RELOC_BFIN_FUNCDESC_GOT17M4 4636 -- : BFD_RELOC_BFIN_FUNCDESC_GOTHI 4637 -- : BFD_RELOC_BFIN_FUNCDESC_GOTLO 4638 -- : BFD_RELOC_BFIN_FUNCDESC_VALUE 4639 -- : BFD_RELOC_BFIN_FUNCDESC_GOTOFF17M4 4640 -- : BFD_RELOC_BFIN_FUNCDESC_GOTOFFHI 4641 -- : BFD_RELOC_BFIN_FUNCDESC_GOTOFFLO 4642 -- : BFD_RELOC_BFIN_GOTOFF17M4 4643 -- : BFD_RELOC_BFIN_GOTOFFHI 4644 -- : BFD_RELOC_BFIN_GOTOFFLO 4645 ADI Blackfin FD-PIC relocations. 4646 4647 -- : BFD_RELOC_BFIN_GOT 4648 ADI Blackfin GOT relocation. 4649 4650 -- : BFD_RELOC_BFIN_PLTPC 4651 ADI Blackfin PLTPC relocation. 4652 4653 -- : BFD_ARELOC_BFIN_PUSH 4654 ADI Blackfin arithmetic relocation. 4655 4656 -- : BFD_ARELOC_BFIN_CONST 4657 ADI Blackfin arithmetic relocation. 4658 4659 -- : BFD_ARELOC_BFIN_ADD 4660 ADI Blackfin arithmetic relocation. 4661 4662 -- : BFD_ARELOC_BFIN_SUB 4663 ADI Blackfin arithmetic relocation. 4664 4665 -- : BFD_ARELOC_BFIN_MULT 4666 ADI Blackfin arithmetic relocation. 4667 4668 -- : BFD_ARELOC_BFIN_DIV 4669 ADI Blackfin arithmetic relocation. 4670 4671 -- : BFD_ARELOC_BFIN_MOD 4672 ADI Blackfin arithmetic relocation. 4673 4674 -- : BFD_ARELOC_BFIN_LSHIFT 4675 ADI Blackfin arithmetic relocation. 4676 4677 -- : BFD_ARELOC_BFIN_RSHIFT 4678 ADI Blackfin arithmetic relocation. 4679 4680 -- : BFD_ARELOC_BFIN_AND 4681 ADI Blackfin arithmetic relocation. 4682 4683 -- : BFD_ARELOC_BFIN_OR 4684 ADI Blackfin arithmetic relocation. 4685 4686 -- : BFD_ARELOC_BFIN_XOR 4687 ADI Blackfin arithmetic relocation. 4688 4689 -- : BFD_ARELOC_BFIN_LAND 4690 ADI Blackfin arithmetic relocation. 4691 4692 -- : BFD_ARELOC_BFIN_LOR 4693 ADI Blackfin arithmetic relocation. 4694 4695 -- : BFD_ARELOC_BFIN_LEN 4696 ADI Blackfin arithmetic relocation. 4697 4698 -- : BFD_ARELOC_BFIN_NEG 4699 ADI Blackfin arithmetic relocation. 4700 4701 -- : BFD_ARELOC_BFIN_COMP 4702 ADI Blackfin arithmetic relocation. 4703 4704 -- : BFD_ARELOC_BFIN_PAGE 4705 ADI Blackfin arithmetic relocation. 4706 4707 -- : BFD_ARELOC_BFIN_HWPAGE 4708 ADI Blackfin arithmetic relocation. 4709 4710 -- : BFD_ARELOC_BFIN_ADDR 4711 ADI Blackfin arithmetic relocation. 4712 4713 -- : BFD_RELOC_D10V_10_PCREL_R 4714 Mitsubishi D10V relocs. This is a 10-bit reloc with the right 2 4715 bits assumed to be 0. 4716 4717 -- : BFD_RELOC_D10V_10_PCREL_L 4718 Mitsubishi D10V relocs. This is a 10-bit reloc with the right 2 4719 bits assumed to be 0. This is the same as the previous reloc 4720 except it is in the left container, i.e., shifted left 15 bits. 4721 4722 -- : BFD_RELOC_D10V_18 4723 This is an 18-bit reloc with the right 2 bits assumed to be 0. 4724 4725 -- : BFD_RELOC_D10V_18_PCREL 4726 This is an 18-bit reloc with the right 2 bits assumed to be 0. 4727 4728 -- : BFD_RELOC_D30V_6 4729 Mitsubishi D30V relocs. This is a 6-bit absolute reloc. 4730 4731 -- : BFD_RELOC_D30V_9_PCREL 4732 This is a 6-bit pc-relative reloc with the right 3 bits assumed to 4733 be 0. 4734 4735 -- : BFD_RELOC_D30V_9_PCREL_R 4736 This is a 6-bit pc-relative reloc with the right 3 bits assumed to 4737 be 0. Same as the previous reloc but on the right side of the 4738 container. 4739 4740 -- : BFD_RELOC_D30V_15 4741 This is a 12-bit absolute reloc with the right 3 bitsassumed to be 4742 0. 4743 4744 -- : BFD_RELOC_D30V_15_PCREL 4745 This is a 12-bit pc-relative reloc with the right 3 bits assumed 4746 to be 0. 4747 4748 -- : BFD_RELOC_D30V_15_PCREL_R 4749 This is a 12-bit pc-relative reloc with the right 3 bits assumed 4750 to be 0. Same as the previous reloc but on the right side of the 4751 container. 4752 4753 -- : BFD_RELOC_D30V_21 4754 This is an 18-bit absolute reloc with the right 3 bits assumed to 4755 be 0. 4756 4757 -- : BFD_RELOC_D30V_21_PCREL 4758 This is an 18-bit pc-relative reloc with the right 3 bits assumed 4759 to be 0. 4760 4761 -- : BFD_RELOC_D30V_21_PCREL_R 4762 This is an 18-bit pc-relative reloc with the right 3 bits assumed 4763 to be 0. Same as the previous reloc but on the right side of the 4764 container. 4765 4766 -- : BFD_RELOC_D30V_32 4767 This is a 32-bit absolute reloc. 4768 4769 -- : BFD_RELOC_D30V_32_PCREL 4770 This is a 32-bit pc-relative reloc. 4771 4772 -- : BFD_RELOC_DLX_HI16_S 4773 DLX relocs 4774 4775 -- : BFD_RELOC_DLX_LO16 4776 DLX relocs 4777 4778 -- : BFD_RELOC_DLX_JMP26 4779 DLX relocs 4780 4781 -- : BFD_RELOC_M32C_HI8 4782 -- : BFD_RELOC_M32C_RL_JUMP 4783 -- : BFD_RELOC_M32C_RL_1ADDR 4784 -- : BFD_RELOC_M32C_RL_2ADDR 4785 Renesas M16C/M32C Relocations. 4786 4787 -- : BFD_RELOC_M32R_24 4788 Renesas M32R (formerly Mitsubishi M32R) relocs. This is a 24 bit 4789 absolute address. 4790 4791 -- : BFD_RELOC_M32R_10_PCREL 4792 This is a 10-bit pc-relative reloc with the right 2 bits assumed 4793 to be 0. 4794 4795 -- : BFD_RELOC_M32R_18_PCREL 4796 This is an 18-bit reloc with the right 2 bits assumed to be 0. 4797 4798 -- : BFD_RELOC_M32R_26_PCREL 4799 This is a 26-bit reloc with the right 2 bits assumed to be 0. 4800 4801 -- : BFD_RELOC_M32R_HI16_ULO 4802 This is a 16-bit reloc containing the high 16 bits of an address 4803 used when the lower 16 bits are treated as unsigned. 4804 4805 -- : BFD_RELOC_M32R_HI16_SLO 4806 This is a 16-bit reloc containing the high 16 bits of an address 4807 used when the lower 16 bits are treated as signed. 4808 4809 -- : BFD_RELOC_M32R_LO16 4810 This is a 16-bit reloc containing the lower 16 bits of an address. 4811 4812 -- : BFD_RELOC_M32R_SDA16 4813 This is a 16-bit reloc containing the small data area offset for 4814 use in add3, load, and store instructions. 4815 4816 -- : BFD_RELOC_M32R_GOT24 4817 -- : BFD_RELOC_M32R_26_PLTREL 4818 -- : BFD_RELOC_M32R_COPY 4819 -- : BFD_RELOC_M32R_GLOB_DAT 4820 -- : BFD_RELOC_M32R_JMP_SLOT 4821 -- : BFD_RELOC_M32R_RELATIVE 4822 -- : BFD_RELOC_M32R_GOTOFF 4823 -- : BFD_RELOC_M32R_GOTOFF_HI_ULO 4824 -- : BFD_RELOC_M32R_GOTOFF_HI_SLO 4825 -- : BFD_RELOC_M32R_GOTOFF_LO 4826 -- : BFD_RELOC_M32R_GOTPC24 4827 -- : BFD_RELOC_M32R_GOT16_HI_ULO 4828 -- : BFD_RELOC_M32R_GOT16_HI_SLO 4829 -- : BFD_RELOC_M32R_GOT16_LO 4830 -- : BFD_RELOC_M32R_GOTPC_HI_ULO 4831 -- : BFD_RELOC_M32R_GOTPC_HI_SLO 4832 -- : BFD_RELOC_M32R_GOTPC_LO 4833 For PIC. 4834 4835 -- : BFD_RELOC_NDS32_20 4836 NDS32 relocs. This is a 20 bit absolute address. 4837 4838 -- : BFD_RELOC_NDS32_9_PCREL 4839 This is a 9-bit pc-relative reloc with the right 1 bit assumed to 4840 be 0. 4841 4842 -- : BFD_RELOC_NDS32_WORD_9_PCREL 4843 This is a 9-bit pc-relative reloc with the right 1 bit assumed to 4844 be 0. 4845 4846 -- : BFD_RELOC_NDS32_15_PCREL 4847 This is an 15-bit reloc with the right 1 bit assumed to be 0. 4848 4849 -- : BFD_RELOC_NDS32_17_PCREL 4850 This is an 17-bit reloc with the right 1 bit assumed to be 0. 4851 4852 -- : BFD_RELOC_NDS32_25_PCREL 4853 This is a 25-bit reloc with the right 1 bit assumed to be 0. 4854 4855 -- : BFD_RELOC_NDS32_HI20 4856 This is a 20-bit reloc containing the high 20 bits of an address 4857 used with the lower 12 bits 4858 4859 -- : BFD_RELOC_NDS32_LO12S3 4860 This is a 12-bit reloc containing the lower 12 bits of an address 4861 then shift right by 3. This is used with ldi,sdi... 4862 4863 -- : BFD_RELOC_NDS32_LO12S2 4864 This is a 12-bit reloc containing the lower 12 bits of an address 4865 then shift left by 2. This is used with lwi,swi... 4866 4867 -- : BFD_RELOC_NDS32_LO12S1 4868 This is a 12-bit reloc containing the lower 12 bits of an address 4869 then shift left by 1. This is used with lhi,shi... 4870 4871 -- : BFD_RELOC_NDS32_LO12S0 4872 This is a 12-bit reloc containing the lower 12 bits of an address 4873 then shift left by 0. This is used with lbisbi... 4874 4875 -- : BFD_RELOC_NDS32_LO12S0_ORI 4876 This is a 12-bit reloc containing the lower 12 bits of an address 4877 then shift left by 0. This is only used with branch relaxations 4878 4879 -- : BFD_RELOC_NDS32_SDA15S3 4880 This is a 15-bit reloc containing the small data area 18-bit 4881 signed offset and shift left by 3 for use in ldi, sdi... 4882 4883 -- : BFD_RELOC_NDS32_SDA15S2 4884 This is a 15-bit reloc containing the small data area 17-bit 4885 signed offset and shift left by 2 for use in lwi, swi... 4886 4887 -- : BFD_RELOC_NDS32_SDA15S1 4888 This is a 15-bit reloc containing the small data area 16-bit 4889 signed offset and shift left by 1 for use in lhi, shi... 4890 4891 -- : BFD_RELOC_NDS32_SDA15S0 4892 This is a 15-bit reloc containing the small data area 15-bit 4893 signed offset and shift left by 0 for use in lbi, sbi... 4894 4895 -- : BFD_RELOC_NDS32_SDA16S3 4896 This is a 16-bit reloc containing the small data area 16-bit 4897 signed offset and shift left by 3 4898 4899 -- : BFD_RELOC_NDS32_SDA17S2 4900 This is a 17-bit reloc containing the small data area 17-bit 4901 signed offset and shift left by 2 for use in lwi.gp, swi.gp... 4902 4903 -- : BFD_RELOC_NDS32_SDA18S1 4904 This is a 18-bit reloc containing the small data area 18-bit 4905 signed offset and shift left by 1 for use in lhi.gp, shi.gp... 4906 4907 -- : BFD_RELOC_NDS32_SDA19S0 4908 This is a 19-bit reloc containing the small data area 19-bit 4909 signed offset and shift left by 0 for use in lbi.gp, sbi.gp... 4910 4911 -- : BFD_RELOC_NDS32_GOT20 4912 -- : BFD_RELOC_NDS32_9_PLTREL 4913 -- : BFD_RELOC_NDS32_25_PLTREL 4914 -- : BFD_RELOC_NDS32_COPY 4915 -- : BFD_RELOC_NDS32_GLOB_DAT 4916 -- : BFD_RELOC_NDS32_JMP_SLOT 4917 -- : BFD_RELOC_NDS32_RELATIVE 4918 -- : BFD_RELOC_NDS32_GOTOFF 4919 -- : BFD_RELOC_NDS32_GOTOFF_HI20 4920 -- : BFD_RELOC_NDS32_GOTOFF_LO12 4921 -- : BFD_RELOC_NDS32_GOTPC20 4922 -- : BFD_RELOC_NDS32_GOT_HI20 4923 -- : BFD_RELOC_NDS32_GOT_LO12 4924 -- : BFD_RELOC_NDS32_GOTPC_HI20 4925 -- : BFD_RELOC_NDS32_GOTPC_LO12 4926 for PIC 4927 4928 -- : BFD_RELOC_NDS32_INSN16 4929 -- : BFD_RELOC_NDS32_LABEL 4930 -- : BFD_RELOC_NDS32_LONGCALL1 4931 -- : BFD_RELOC_NDS32_LONGCALL2 4932 -- : BFD_RELOC_NDS32_LONGCALL3 4933 -- : BFD_RELOC_NDS32_LONGJUMP1 4934 -- : BFD_RELOC_NDS32_LONGJUMP2 4935 -- : BFD_RELOC_NDS32_LONGJUMP3 4936 -- : BFD_RELOC_NDS32_LOADSTORE 4937 -- : BFD_RELOC_NDS32_9_FIXED 4938 -- : BFD_RELOC_NDS32_15_FIXED 4939 -- : BFD_RELOC_NDS32_17_FIXED 4940 -- : BFD_RELOC_NDS32_25_FIXED 4941 -- : BFD_RELOC_NDS32_LONGCALL4 4942 -- : BFD_RELOC_NDS32_LONGCALL5 4943 -- : BFD_RELOC_NDS32_LONGCALL6 4944 -- : BFD_RELOC_NDS32_LONGJUMP4 4945 -- : BFD_RELOC_NDS32_LONGJUMP5 4946 -- : BFD_RELOC_NDS32_LONGJUMP6 4947 -- : BFD_RELOC_NDS32_LONGJUMP7 4948 for relax 4949 4950 -- : BFD_RELOC_NDS32_PLTREL_HI20 4951 -- : BFD_RELOC_NDS32_PLTREL_LO12 4952 -- : BFD_RELOC_NDS32_PLT_GOTREL_HI20 4953 -- : BFD_RELOC_NDS32_PLT_GOTREL_LO12 4954 for PIC 4955 4956 -- : BFD_RELOC_NDS32_SDA12S2_DP 4957 -- : BFD_RELOC_NDS32_SDA12S2_SP 4958 -- : BFD_RELOC_NDS32_LO12S2_DP 4959 -- : BFD_RELOC_NDS32_LO12S2_SP 4960 for floating point 4961 4962 -- : BFD_RELOC_NDS32_DWARF2_OP1 4963 -- : BFD_RELOC_NDS32_DWARF2_OP2 4964 -- : BFD_RELOC_NDS32_DWARF2_LEB 4965 for dwarf2 debug_line. 4966 4967 -- : BFD_RELOC_NDS32_UPDATE_TA 4968 for eliminate 16-bit instructions 4969 4970 -- : BFD_RELOC_NDS32_PLT_GOTREL_LO20 4971 -- : BFD_RELOC_NDS32_PLT_GOTREL_LO15 4972 -- : BFD_RELOC_NDS32_PLT_GOTREL_LO19 4973 -- : BFD_RELOC_NDS32_GOT_LO15 4974 -- : BFD_RELOC_NDS32_GOT_LO19 4975 -- : BFD_RELOC_NDS32_GOTOFF_LO15 4976 -- : BFD_RELOC_NDS32_GOTOFF_LO19 4977 -- : BFD_RELOC_NDS32_GOT15S2 4978 -- : BFD_RELOC_NDS32_GOT17S2 4979 for PIC object relaxation 4980 4981 -- : BFD_RELOC_NDS32_5 4982 NDS32 relocs. This is a 5 bit absolute address. 4983 4984 -- : BFD_RELOC_NDS32_10_UPCREL 4985 This is a 10-bit unsigned pc-relative reloc with the right 1 bit 4986 assumed to be 0. 4987 4988 -- : BFD_RELOC_NDS32_SDA_FP7U2_RELA 4989 If fp were omitted, fp can used as another gp. 4990 4991 -- : BFD_RELOC_NDS32_RELAX_ENTRY 4992 -- : BFD_RELOC_NDS32_GOT_SUFF 4993 -- : BFD_RELOC_NDS32_GOTOFF_SUFF 4994 -- : BFD_RELOC_NDS32_PLT_GOT_SUFF 4995 -- : BFD_RELOC_NDS32_MULCALL_SUFF 4996 -- : BFD_RELOC_NDS32_PTR 4997 -- : BFD_RELOC_NDS32_PTR_COUNT 4998 -- : BFD_RELOC_NDS32_PTR_RESOLVED 4999 -- : BFD_RELOC_NDS32_PLTBLOCK 5000 -- : BFD_RELOC_NDS32_RELAX_REGION_BEGIN 5001 -- : BFD_RELOC_NDS32_RELAX_REGION_END 5002 -- : BFD_RELOC_NDS32_MINUEND 5003 -- : BFD_RELOC_NDS32_SUBTRAHEND 5004 -- : BFD_RELOC_NDS32_DIFF8 5005 -- : BFD_RELOC_NDS32_DIFF16 5006 -- : BFD_RELOC_NDS32_DIFF32 5007 -- : BFD_RELOC_NDS32_DIFF_ULEB128 5008 -- : BFD_RELOC_NDS32_EMPTY 5009 relaxation relative relocation types 5010 5011 -- : BFD_RELOC_NDS32_25_ABS 5012 This is a 25 bit absolute address. 5013 5014 -- : BFD_RELOC_NDS32_DATA 5015 -- : BFD_RELOC_NDS32_TRAN 5016 -- : BFD_RELOC_NDS32_17IFC_PCREL 5017 -- : BFD_RELOC_NDS32_10IFCU_PCREL 5018 For ex9 and ifc using. 5019 5020 -- : BFD_RELOC_NDS32_TPOFF 5021 -- : BFD_RELOC_NDS32_TLS_LE_HI20 5022 -- : BFD_RELOC_NDS32_TLS_LE_LO12 5023 -- : BFD_RELOC_NDS32_TLS_LE_ADD 5024 -- : BFD_RELOC_NDS32_TLS_LE_LS 5025 -- : BFD_RELOC_NDS32_GOTTPOFF 5026 -- : BFD_RELOC_NDS32_TLS_IE_HI20 5027 -- : BFD_RELOC_NDS32_TLS_IE_LO12S2 5028 -- : BFD_RELOC_NDS32_TLS_TPOFF 5029 -- : BFD_RELOC_NDS32_TLS_LE_20 5030 -- : BFD_RELOC_NDS32_TLS_LE_15S0 5031 -- : BFD_RELOC_NDS32_TLS_LE_15S1 5032 -- : BFD_RELOC_NDS32_TLS_LE_15S2 5033 For TLS. 5034 5035 -- : BFD_RELOC_V850_9_PCREL 5036 This is a 9-bit reloc 5037 5038 -- : BFD_RELOC_V850_22_PCREL 5039 This is a 22-bit reloc 5040 5041 -- : BFD_RELOC_V850_SDA_16_16_OFFSET 5042 This is a 16 bit offset from the short data area pointer. 5043 5044 -- : BFD_RELOC_V850_SDA_15_16_OFFSET 5045 This is a 16 bit offset (of which only 15 bits are used) from the 5046 short data area pointer. 5047 5048 -- : BFD_RELOC_V850_ZDA_16_16_OFFSET 5049 This is a 16 bit offset from the zero data area pointer. 5050 5051 -- : BFD_RELOC_V850_ZDA_15_16_OFFSET 5052 This is a 16 bit offset (of which only 15 bits are used) from the 5053 zero data area pointer. 5054 5055 -- : BFD_RELOC_V850_TDA_6_8_OFFSET 5056 This is an 8 bit offset (of which only 6 bits are used) from the 5057 tiny data area pointer. 5058 5059 -- : BFD_RELOC_V850_TDA_7_8_OFFSET 5060 This is an 8bit offset (of which only 7 bits are used) from the 5061 tiny data area pointer. 5062 5063 -- : BFD_RELOC_V850_TDA_7_7_OFFSET 5064 This is a 7 bit offset from the tiny data area pointer. 5065 5066 -- : BFD_RELOC_V850_TDA_16_16_OFFSET 5067 This is a 16 bit offset from the tiny data area pointer. 5068 5069 -- : BFD_RELOC_V850_TDA_4_5_OFFSET 5070 This is a 5 bit offset (of which only 4 bits are used) from the 5071 tiny data area pointer. 5072 5073 -- : BFD_RELOC_V850_TDA_4_4_OFFSET 5074 This is a 4 bit offset from the tiny data area pointer. 5075 5076 -- : BFD_RELOC_V850_SDA_16_16_SPLIT_OFFSET 5077 This is a 16 bit offset from the short data area pointer, with the 5078 bits placed non-contiguously in the instruction. 5079 5080 -- : BFD_RELOC_V850_ZDA_16_16_SPLIT_OFFSET 5081 This is a 16 bit offset from the zero data area pointer, with the 5082 bits placed non-contiguously in the instruction. 5083 5084 -- : BFD_RELOC_V850_CALLT_6_7_OFFSET 5085 This is a 6 bit offset from the call table base pointer. 5086 5087 -- : BFD_RELOC_V850_CALLT_16_16_OFFSET 5088 This is a 16 bit offset from the call table base pointer. 5089 5090 -- : BFD_RELOC_V850_LONGCALL 5091 Used for relaxing indirect function calls. 5092 5093 -- : BFD_RELOC_V850_LONGJUMP 5094 Used for relaxing indirect jumps. 5095 5096 -- : BFD_RELOC_V850_ALIGN 5097 Used to maintain alignment whilst relaxing. 5098 5099 -- : BFD_RELOC_V850_LO16_SPLIT_OFFSET 5100 This is a variation of BFD_RELOC_LO16 that can be used in v850e 5101 ld.bu instructions. 5102 5103 -- : BFD_RELOC_V850_16_PCREL 5104 This is a 16-bit reloc. 5105 5106 -- : BFD_RELOC_V850_17_PCREL 5107 This is a 17-bit reloc. 5108 5109 -- : BFD_RELOC_V850_23 5110 This is a 23-bit reloc. 5111 5112 -- : BFD_RELOC_V850_32_PCREL 5113 This is a 32-bit reloc. 5114 5115 -- : BFD_RELOC_V850_32_ABS 5116 This is a 32-bit reloc. 5117 5118 -- : BFD_RELOC_V850_16_SPLIT_OFFSET 5119 This is a 16-bit reloc. 5120 5121 -- : BFD_RELOC_V850_16_S1 5122 This is a 16-bit reloc. 5123 5124 -- : BFD_RELOC_V850_LO16_S1 5125 Low 16 bits. 16 bit shifted by 1. 5126 5127 -- : BFD_RELOC_V850_CALLT_15_16_OFFSET 5128 This is a 16 bit offset from the call table base pointer. 5129 5130 -- : BFD_RELOC_V850_32_GOTPCREL 5131 DSO relocations. 5132 5133 -- : BFD_RELOC_V850_16_GOT 5134 DSO relocations. 5135 5136 -- : BFD_RELOC_V850_32_GOT 5137 DSO relocations. 5138 5139 -- : BFD_RELOC_V850_22_PLT_PCREL 5140 DSO relocations. 5141 5142 -- : BFD_RELOC_V850_32_PLT_PCREL 5143 DSO relocations. 5144 5145 -- : BFD_RELOC_V850_COPY 5146 DSO relocations. 5147 5148 -- : BFD_RELOC_V850_GLOB_DAT 5149 DSO relocations. 5150 5151 -- : BFD_RELOC_V850_JMP_SLOT 5152 DSO relocations. 5153 5154 -- : BFD_RELOC_V850_RELATIVE 5155 DSO relocations. 5156 5157 -- : BFD_RELOC_V850_16_GOTOFF 5158 DSO relocations. 5159 5160 -- : BFD_RELOC_V850_32_GOTOFF 5161 DSO relocations. 5162 5163 -- : BFD_RELOC_V850_CODE 5164 start code. 5165 5166 -- : BFD_RELOC_V850_DATA 5167 start data in text. 5168 5169 -- : BFD_RELOC_TIC30_LDP 5170 This is a 8bit DP reloc for the tms320c30, where the most 5171 significant 8 bits of a 24 bit word are placed into the least 5172 significant 8 bits of the opcode. 5173 5174 -- : BFD_RELOC_TIC54X_PARTLS7 5175 This is a 7bit reloc for the tms320c54x, where the least 5176 significant 7 bits of a 16 bit word are placed into the least 5177 significant 7 bits of the opcode. 5178 5179 -- : BFD_RELOC_TIC54X_PARTMS9 5180 This is a 9bit DP reloc for the tms320c54x, where the most 5181 significant 9 bits of a 16 bit word are placed into the least 5182 significant 9 bits of the opcode. 5183 5184 -- : BFD_RELOC_TIC54X_23 5185 This is an extended address 23-bit reloc for the tms320c54x. 5186 5187 -- : BFD_RELOC_TIC54X_16_OF_23 5188 This is a 16-bit reloc for the tms320c54x, where the least 5189 significant 16 bits of a 23-bit extended address are placed into 5190 the opcode. 5191 5192 -- : BFD_RELOC_TIC54X_MS7_OF_23 5193 This is a reloc for the tms320c54x, where the most significant 7 5194 bits of a 23-bit extended address are placed into the opcode. 5195 5196 -- : BFD_RELOC_C6000_PCR_S21 5197 -- : BFD_RELOC_C6000_PCR_S12 5198 -- : BFD_RELOC_C6000_PCR_S10 5199 -- : BFD_RELOC_C6000_PCR_S7 5200 -- : BFD_RELOC_C6000_ABS_S16 5201 -- : BFD_RELOC_C6000_ABS_L16 5202 -- : BFD_RELOC_C6000_ABS_H16 5203 -- : BFD_RELOC_C6000_SBR_U15_B 5204 -- : BFD_RELOC_C6000_SBR_U15_H 5205 -- : BFD_RELOC_C6000_SBR_U15_W 5206 -- : BFD_RELOC_C6000_SBR_S16 5207 -- : BFD_RELOC_C6000_SBR_L16_B 5208 -- : BFD_RELOC_C6000_SBR_L16_H 5209 -- : BFD_RELOC_C6000_SBR_L16_W 5210 -- : BFD_RELOC_C6000_SBR_H16_B 5211 -- : BFD_RELOC_C6000_SBR_H16_H 5212 -- : BFD_RELOC_C6000_SBR_H16_W 5213 -- : BFD_RELOC_C6000_SBR_GOT_U15_W 5214 -- : BFD_RELOC_C6000_SBR_GOT_L16_W 5215 -- : BFD_RELOC_C6000_SBR_GOT_H16_W 5216 -- : BFD_RELOC_C6000_DSBT_INDEX 5217 -- : BFD_RELOC_C6000_PREL31 5218 -- : BFD_RELOC_C6000_COPY 5219 -- : BFD_RELOC_C6000_JUMP_SLOT 5220 -- : BFD_RELOC_C6000_EHTYPE 5221 -- : BFD_RELOC_C6000_PCR_H16 5222 -- : BFD_RELOC_C6000_PCR_L16 5223 -- : BFD_RELOC_C6000_ALIGN 5224 -- : BFD_RELOC_C6000_FPHEAD 5225 -- : BFD_RELOC_C6000_NOCMP 5226 TMS320C6000 relocations. 5227 5228 -- : BFD_RELOC_FR30_48 5229 This is a 48 bit reloc for the FR30 that stores 32 bits. 5230 5231 -- : BFD_RELOC_FR30_20 5232 This is a 32 bit reloc for the FR30 that stores 20 bits split up 5233 into two sections. 5234 5235 -- : BFD_RELOC_FR30_6_IN_4 5236 This is a 16 bit reloc for the FR30 that stores a 6 bit word 5237 offset in 4 bits. 5238 5239 -- : BFD_RELOC_FR30_8_IN_8 5240 This is a 16 bit reloc for the FR30 that stores an 8 bit byte 5241 offset into 8 bits. 5242 5243 -- : BFD_RELOC_FR30_9_IN_8 5244 This is a 16 bit reloc for the FR30 that stores a 9 bit short 5245 offset into 8 bits. 5246 5247 -- : BFD_RELOC_FR30_10_IN_8 5248 This is a 16 bit reloc for the FR30 that stores a 10 bit word 5249 offset into 8 bits. 5250 5251 -- : BFD_RELOC_FR30_9_PCREL 5252 This is a 16 bit reloc for the FR30 that stores a 9 bit pc relative 5253 short offset into 8 bits. 5254 5255 -- : BFD_RELOC_FR30_12_PCREL 5256 This is a 16 bit reloc for the FR30 that stores a 12 bit pc 5257 relative short offset into 11 bits. 5258 5259 -- : BFD_RELOC_MCORE_PCREL_IMM8BY4 5260 -- : BFD_RELOC_MCORE_PCREL_IMM11BY2 5261 -- : BFD_RELOC_MCORE_PCREL_IMM4BY2 5262 -- : BFD_RELOC_MCORE_PCREL_32 5263 -- : BFD_RELOC_MCORE_PCREL_JSR_IMM11BY2 5264 -- : BFD_RELOC_MCORE_RVA 5265 Motorola Mcore relocations. 5266 5267 -- : BFD_RELOC_MEP_8 5268 -- : BFD_RELOC_MEP_16 5269 -- : BFD_RELOC_MEP_32 5270 -- : BFD_RELOC_MEP_PCREL8A2 5271 -- : BFD_RELOC_MEP_PCREL12A2 5272 -- : BFD_RELOC_MEP_PCREL17A2 5273 -- : BFD_RELOC_MEP_PCREL24A2 5274 -- : BFD_RELOC_MEP_PCABS24A2 5275 -- : BFD_RELOC_MEP_LOW16 5276 -- : BFD_RELOC_MEP_HI16U 5277 -- : BFD_RELOC_MEP_HI16S 5278 -- : BFD_RELOC_MEP_GPREL 5279 -- : BFD_RELOC_MEP_TPREL 5280 -- : BFD_RELOC_MEP_TPREL7 5281 -- : BFD_RELOC_MEP_TPREL7A2 5282 -- : BFD_RELOC_MEP_TPREL7A4 5283 -- : BFD_RELOC_MEP_UIMM24 5284 -- : BFD_RELOC_MEP_ADDR24A4 5285 -- : BFD_RELOC_MEP_GNU_VTINHERIT 5286 -- : BFD_RELOC_MEP_GNU_VTENTRY 5287 Toshiba Media Processor Relocations. 5288 5289 -- : BFD_RELOC_METAG_HIADDR16 5290 -- : BFD_RELOC_METAG_LOADDR16 5291 -- : BFD_RELOC_METAG_RELBRANCH 5292 -- : BFD_RELOC_METAG_GETSETOFF 5293 -- : BFD_RELOC_METAG_HIOG 5294 -- : BFD_RELOC_METAG_LOOG 5295 -- : BFD_RELOC_METAG_REL8 5296 -- : BFD_RELOC_METAG_REL16 5297 -- : BFD_RELOC_METAG_HI16_GOTOFF 5298 -- : BFD_RELOC_METAG_LO16_GOTOFF 5299 -- : BFD_RELOC_METAG_GETSET_GOTOFF 5300 -- : BFD_RELOC_METAG_GETSET_GOT 5301 -- : BFD_RELOC_METAG_HI16_GOTPC 5302 -- : BFD_RELOC_METAG_LO16_GOTPC 5303 -- : BFD_RELOC_METAG_HI16_PLT 5304 -- : BFD_RELOC_METAG_LO16_PLT 5305 -- : BFD_RELOC_METAG_RELBRANCH_PLT 5306 -- : BFD_RELOC_METAG_GOTOFF 5307 -- : BFD_RELOC_METAG_PLT 5308 -- : BFD_RELOC_METAG_COPY 5309 -- : BFD_RELOC_METAG_JMP_SLOT 5310 -- : BFD_RELOC_METAG_RELATIVE 5311 -- : BFD_RELOC_METAG_GLOB_DAT 5312 -- : BFD_RELOC_METAG_TLS_GD 5313 -- : BFD_RELOC_METAG_TLS_LDM 5314 -- : BFD_RELOC_METAG_TLS_LDO_HI16 5315 -- : BFD_RELOC_METAG_TLS_LDO_LO16 5316 -- : BFD_RELOC_METAG_TLS_LDO 5317 -- : BFD_RELOC_METAG_TLS_IE 5318 -- : BFD_RELOC_METAG_TLS_IENONPIC 5319 -- : BFD_RELOC_METAG_TLS_IENONPIC_HI16 5320 -- : BFD_RELOC_METAG_TLS_IENONPIC_LO16 5321 -- : BFD_RELOC_METAG_TLS_TPOFF 5322 -- : BFD_RELOC_METAG_TLS_DTPMOD 5323 -- : BFD_RELOC_METAG_TLS_DTPOFF 5324 -- : BFD_RELOC_METAG_TLS_LE 5325 -- : BFD_RELOC_METAG_TLS_LE_HI16 5326 -- : BFD_RELOC_METAG_TLS_LE_LO16 5327 Imagination Technologies Meta relocations. 5328 5329 -- : BFD_RELOC_MMIX_GETA 5330 -- : BFD_RELOC_MMIX_GETA_1 5331 -- : BFD_RELOC_MMIX_GETA_2 5332 -- : BFD_RELOC_MMIX_GETA_3 5333 These are relocations for the GETA instruction. 5334 5335 -- : BFD_RELOC_MMIX_CBRANCH 5336 -- : BFD_RELOC_MMIX_CBRANCH_J 5337 -- : BFD_RELOC_MMIX_CBRANCH_1 5338 -- : BFD_RELOC_MMIX_CBRANCH_2 5339 -- : BFD_RELOC_MMIX_CBRANCH_3 5340 These are relocations for a conditional branch instruction. 5341 5342 -- : BFD_RELOC_MMIX_PUSHJ 5343 -- : BFD_RELOC_MMIX_PUSHJ_1 5344 -- : BFD_RELOC_MMIX_PUSHJ_2 5345 -- : BFD_RELOC_MMIX_PUSHJ_3 5346 -- : BFD_RELOC_MMIX_PUSHJ_STUBBABLE 5347 These are relocations for the PUSHJ instruction. 5348 5349 -- : BFD_RELOC_MMIX_JMP 5350 -- : BFD_RELOC_MMIX_JMP_1 5351 -- : BFD_RELOC_MMIX_JMP_2 5352 -- : BFD_RELOC_MMIX_JMP_3 5353 These are relocations for the JMP instruction. 5354 5355 -- : BFD_RELOC_MMIX_ADDR19 5356 This is a relocation for a relative address as in a GETA 5357 instruction or a branch. 5358 5359 -- : BFD_RELOC_MMIX_ADDR27 5360 This is a relocation for a relative address as in a JMP 5361 instruction. 5362 5363 -- : BFD_RELOC_MMIX_REG_OR_BYTE 5364 This is a relocation for an instruction field that may be a general 5365 register or a value 0..255. 5366 5367 -- : BFD_RELOC_MMIX_REG 5368 This is a relocation for an instruction field that may be a general 5369 register. 5370 5371 -- : BFD_RELOC_MMIX_BASE_PLUS_OFFSET 5372 This is a relocation for two instruction fields holding a register 5373 and an offset, the equivalent of the relocation. 5374 5375 -- : BFD_RELOC_MMIX_LOCAL 5376 This relocation is an assertion that the expression is not 5377 allocated as a global register. It does not modify contents. 5378 5379 -- : BFD_RELOC_AVR_7_PCREL 5380 This is a 16 bit reloc for the AVR that stores 8 bit pc relative 5381 short offset into 7 bits. 5382 5383 -- : BFD_RELOC_AVR_13_PCREL 5384 This is a 16 bit reloc for the AVR that stores 13 bit pc relative 5385 short offset into 12 bits. 5386 5387 -- : BFD_RELOC_AVR_16_PM 5388 This is a 16 bit reloc for the AVR that stores 17 bit value 5389 (usually program memory address) into 16 bits. 5390 5391 -- : BFD_RELOC_AVR_LO8_LDI 5392 This is a 16 bit reloc for the AVR that stores 8 bit value (usually 5393 data memory address) into 8 bit immediate value of LDI insn. 5394 5395 -- : BFD_RELOC_AVR_HI8_LDI 5396 This is a 16 bit reloc for the AVR that stores 8 bit value (high 8 5397 bit of data memory address) into 8 bit immediate value of LDI insn. 5398 5399 -- : BFD_RELOC_AVR_HH8_LDI 5400 This is a 16 bit reloc for the AVR that stores 8 bit value (most 5401 high 8 bit of program memory address) into 8 bit immediate value 5402 of LDI insn. 5403 5404 -- : BFD_RELOC_AVR_MS8_LDI 5405 This is a 16 bit reloc for the AVR that stores 8 bit value (most 5406 high 8 bit of 32 bit value) into 8 bit immediate value of LDI insn. 5407 5408 -- : BFD_RELOC_AVR_LO8_LDI_NEG 5409 This is a 16 bit reloc for the AVR that stores negated 8 bit value 5410 (usually data memory address) into 8 bit immediate value of SUBI 5411 insn. 5412 5413 -- : BFD_RELOC_AVR_HI8_LDI_NEG 5414 This is a 16 bit reloc for the AVR that stores negated 8 bit value 5415 (high 8 bit of data memory address) into 8 bit immediate value of 5416 SUBI insn. 5417 5418 -- : BFD_RELOC_AVR_HH8_LDI_NEG 5419 This is a 16 bit reloc for the AVR that stores negated 8 bit value 5420 (most high 8 bit of program memory address) into 8 bit immediate 5421 value of LDI or SUBI insn. 5422 5423 -- : BFD_RELOC_AVR_MS8_LDI_NEG 5424 This is a 16 bit reloc for the AVR that stores negated 8 bit value 5425 (msb of 32 bit value) into 8 bit immediate value of LDI insn. 5426 5427 -- : BFD_RELOC_AVR_LO8_LDI_PM 5428 This is a 16 bit reloc for the AVR that stores 8 bit value (usually 5429 command address) into 8 bit immediate value of LDI insn. 5430 5431 -- : BFD_RELOC_AVR_LO8_LDI_GS 5432 This is a 16 bit reloc for the AVR that stores 8 bit value 5433 (command address) into 8 bit immediate value of LDI insn. If the 5434 address is beyond the 128k boundary, the linker inserts a jump 5435 stub for this reloc in the lower 128k. 5436 5437 -- : BFD_RELOC_AVR_HI8_LDI_PM 5438 This is a 16 bit reloc for the AVR that stores 8 bit value (high 8 5439 bit of command address) into 8 bit immediate value of LDI insn. 5440 5441 -- : BFD_RELOC_AVR_HI8_LDI_GS 5442 This is a 16 bit reloc for the AVR that stores 8 bit value (high 8 5443 bit of command address) into 8 bit immediate value of LDI insn. 5444 If the address is beyond the 128k boundary, the linker inserts a 5445 jump stub for this reloc below 128k. 5446 5447 -- : BFD_RELOC_AVR_HH8_LDI_PM 5448 This is a 16 bit reloc for the AVR that stores 8 bit value (most 5449 high 8 bit of command address) into 8 bit immediate value of LDI 5450 insn. 5451 5452 -- : BFD_RELOC_AVR_LO8_LDI_PM_NEG 5453 This is a 16 bit reloc for the AVR that stores negated 8 bit value 5454 (usually command address) into 8 bit immediate value of SUBI insn. 5455 5456 -- : BFD_RELOC_AVR_HI8_LDI_PM_NEG 5457 This is a 16 bit reloc for the AVR that stores negated 8 bit value 5458 (high 8 bit of 16 bit command address) into 8 bit immediate value 5459 of SUBI insn. 5460 5461 -- : BFD_RELOC_AVR_HH8_LDI_PM_NEG 5462 This is a 16 bit reloc for the AVR that stores negated 8 bit value 5463 (high 6 bit of 22 bit command address) into 8 bit immediate value 5464 of SUBI insn. 5465 5466 -- : BFD_RELOC_AVR_CALL 5467 This is a 32 bit reloc for the AVR that stores 23 bit value into 5468 22 bits. 5469 5470 -- : BFD_RELOC_AVR_LDI 5471 This is a 16 bit reloc for the AVR that stores all needed bits for 5472 absolute addressing with ldi with overflow check to linktime 5473 5474 -- : BFD_RELOC_AVR_6 5475 This is a 6 bit reloc for the AVR that stores offset for ldd/std 5476 instructions 5477 5478 -- : BFD_RELOC_AVR_6_ADIW 5479 This is a 6 bit reloc for the AVR that stores offset for adiw/sbiw 5480 instructions 5481 5482 -- : BFD_RELOC_AVR_8_LO 5483 This is a 8 bit reloc for the AVR that stores bits 0..7 of a symbol 5484 in .byte lo8(symbol) 5485 5486 -- : BFD_RELOC_AVR_8_HI 5487 This is a 8 bit reloc for the AVR that stores bits 8..15 of a 5488 symbol in .byte hi8(symbol) 5489 5490 -- : BFD_RELOC_AVR_8_HLO 5491 This is a 8 bit reloc for the AVR that stores bits 16..23 of a 5492 symbol in .byte hlo8(symbol) 5493 5494 -- : BFD_RELOC_AVR_DIFF8 5495 -- : BFD_RELOC_AVR_DIFF16 5496 -- : BFD_RELOC_AVR_DIFF32 5497 AVR relocations to mark the difference of two local symbols. 5498 These are only needed to support linker relaxation and can be 5499 ignored when not relaxing. The field is set to the value of the 5500 difference assuming no relaxation. The relocation encodes the 5501 position of the second symbol so the linker can determine whether 5502 to adjust the field value. 5503 5504 -- : BFD_RELOC_AVR_LDS_STS_16 5505 This is a 7 bit reloc for the AVR that stores SRAM address for 5506 16bit lds and sts instructions supported only tiny core. 5507 5508 -- : BFD_RELOC_AVR_PORT6 5509 This is a 6 bit reloc for the AVR that stores an I/O register 5510 number for the IN and OUT instructions 5511 5512 -- : BFD_RELOC_AVR_PORT5 5513 This is a 5 bit reloc for the AVR that stores an I/O register 5514 number for the SBIC, SBIS, SBI and CBI instructions 5515 5516 -- : BFD_RELOC_RISCV_HI20 5517 -- : BFD_RELOC_RISCV_PCREL_HI20 5518 -- : BFD_RELOC_RISCV_PCREL_LO12_I 5519 -- : BFD_RELOC_RISCV_PCREL_LO12_S 5520 -- : BFD_RELOC_RISCV_LO12_I 5521 -- : BFD_RELOC_RISCV_LO12_S 5522 -- : BFD_RELOC_RISCV_GPREL12_I 5523 -- : BFD_RELOC_RISCV_GPREL12_S 5524 -- : BFD_RELOC_RISCV_TPREL_HI20 5525 -- : BFD_RELOC_RISCV_TPREL_LO12_I 5526 -- : BFD_RELOC_RISCV_TPREL_LO12_S 5527 -- : BFD_RELOC_RISCV_TPREL_ADD 5528 -- : BFD_RELOC_RISCV_CALL 5529 -- : BFD_RELOC_RISCV_CALL_PLT 5530 -- : BFD_RELOC_RISCV_ADD8 5531 -- : BFD_RELOC_RISCV_ADD16 5532 -- : BFD_RELOC_RISCV_ADD32 5533 -- : BFD_RELOC_RISCV_ADD64 5534 -- : BFD_RELOC_RISCV_SUB8 5535 -- : BFD_RELOC_RISCV_SUB16 5536 -- : BFD_RELOC_RISCV_SUB32 5537 -- : BFD_RELOC_RISCV_SUB64 5538 -- : BFD_RELOC_RISCV_GOT_HI20 5539 -- : BFD_RELOC_RISCV_TLS_GOT_HI20 5540 -- : BFD_RELOC_RISCV_TLS_GD_HI20 5541 -- : BFD_RELOC_RISCV_JMP 5542 -- : BFD_RELOC_RISCV_TLS_DTPMOD32 5543 -- : BFD_RELOC_RISCV_TLS_DTPREL32 5544 -- : BFD_RELOC_RISCV_TLS_DTPMOD64 5545 -- : BFD_RELOC_RISCV_TLS_DTPREL64 5546 -- : BFD_RELOC_RISCV_TLS_TPREL32 5547 -- : BFD_RELOC_RISCV_TLS_TPREL64 5548 -- : BFD_RELOC_RISCV_ALIGN 5549 -- : BFD_RELOC_RISCV_RVC_BRANCH 5550 -- : BFD_RELOC_RISCV_RVC_JUMP 5551 -- : BFD_RELOC_RISCV_RVC_LUI 5552 -- : BFD_RELOC_RISCV_GPREL_I 5553 -- : BFD_RELOC_RISCV_GPREL_S 5554 -- : BFD_RELOC_RISCV_TPREL_I 5555 -- : BFD_RELOC_RISCV_TPREL_S 5556 -- : BFD_RELOC_RISCV_RELAX 5557 -- : BFD_RELOC_RISCV_CFA 5558 -- : BFD_RELOC_RISCV_SUB6 5559 -- : BFD_RELOC_RISCV_SET6 5560 -- : BFD_RELOC_RISCV_SET8 5561 -- : BFD_RELOC_RISCV_SET16 5562 -- : BFD_RELOC_RISCV_SET32 5563 RISC-V relocations. 5564 5565 -- : BFD_RELOC_RL78_NEG8 5566 -- : BFD_RELOC_RL78_NEG16 5567 -- : BFD_RELOC_RL78_NEG24 5568 -- : BFD_RELOC_RL78_NEG32 5569 -- : BFD_RELOC_RL78_16_OP 5570 -- : BFD_RELOC_RL78_24_OP 5571 -- : BFD_RELOC_RL78_32_OP 5572 -- : BFD_RELOC_RL78_8U 5573 -- : BFD_RELOC_RL78_16U 5574 -- : BFD_RELOC_RL78_24U 5575 -- : BFD_RELOC_RL78_DIR3U_PCREL 5576 -- : BFD_RELOC_RL78_DIFF 5577 -- : BFD_RELOC_RL78_GPRELB 5578 -- : BFD_RELOC_RL78_GPRELW 5579 -- : BFD_RELOC_RL78_GPRELL 5580 -- : BFD_RELOC_RL78_SYM 5581 -- : BFD_RELOC_RL78_OP_SUBTRACT 5582 -- : BFD_RELOC_RL78_OP_NEG 5583 -- : BFD_RELOC_RL78_OP_AND 5584 -- : BFD_RELOC_RL78_OP_SHRA 5585 -- : BFD_RELOC_RL78_ABS8 5586 -- : BFD_RELOC_RL78_ABS16 5587 -- : BFD_RELOC_RL78_ABS16_REV 5588 -- : BFD_RELOC_RL78_ABS32 5589 -- : BFD_RELOC_RL78_ABS32_REV 5590 -- : BFD_RELOC_RL78_ABS16U 5591 -- : BFD_RELOC_RL78_ABS16UW 5592 -- : BFD_RELOC_RL78_ABS16UL 5593 -- : BFD_RELOC_RL78_RELAX 5594 -- : BFD_RELOC_RL78_HI16 5595 -- : BFD_RELOC_RL78_HI8 5596 -- : BFD_RELOC_RL78_LO16 5597 -- : BFD_RELOC_RL78_CODE 5598 -- : BFD_RELOC_RL78_SADDR 5599 Renesas RL78 Relocations. 5600 5601 -- : BFD_RELOC_RX_NEG8 5602 -- : BFD_RELOC_RX_NEG16 5603 -- : BFD_RELOC_RX_NEG24 5604 -- : BFD_RELOC_RX_NEG32 5605 -- : BFD_RELOC_RX_16_OP 5606 -- : BFD_RELOC_RX_24_OP 5607 -- : BFD_RELOC_RX_32_OP 5608 -- : BFD_RELOC_RX_8U 5609 -- : BFD_RELOC_RX_16U 5610 -- : BFD_RELOC_RX_24U 5611 -- : BFD_RELOC_RX_DIR3U_PCREL 5612 -- : BFD_RELOC_RX_DIFF 5613 -- : BFD_RELOC_RX_GPRELB 5614 -- : BFD_RELOC_RX_GPRELW 5615 -- : BFD_RELOC_RX_GPRELL 5616 -- : BFD_RELOC_RX_SYM 5617 -- : BFD_RELOC_RX_OP_SUBTRACT 5618 -- : BFD_RELOC_RX_OP_NEG 5619 -- : BFD_RELOC_RX_ABS8 5620 -- : BFD_RELOC_RX_ABS16 5621 -- : BFD_RELOC_RX_ABS16_REV 5622 -- : BFD_RELOC_RX_ABS32 5623 -- : BFD_RELOC_RX_ABS32_REV 5624 -- : BFD_RELOC_RX_ABS16U 5625 -- : BFD_RELOC_RX_ABS16UW 5626 -- : BFD_RELOC_RX_ABS16UL 5627 -- : BFD_RELOC_RX_RELAX 5628 Renesas RX Relocations. 5629 5630 -- : BFD_RELOC_390_12 5631 Direct 12 bit. 5632 5633 -- : BFD_RELOC_390_GOT12 5634 12 bit GOT offset. 5635 5636 -- : BFD_RELOC_390_PLT32 5637 32 bit PC relative PLT address. 5638 5639 -- : BFD_RELOC_390_COPY 5640 Copy symbol at runtime. 5641 5642 -- : BFD_RELOC_390_GLOB_DAT 5643 Create GOT entry. 5644 5645 -- : BFD_RELOC_390_JMP_SLOT 5646 Create PLT entry. 5647 5648 -- : BFD_RELOC_390_RELATIVE 5649 Adjust by program base. 5650 5651 -- : BFD_RELOC_390_GOTPC 5652 32 bit PC relative offset to GOT. 5653 5654 -- : BFD_RELOC_390_GOT16 5655 16 bit GOT offset. 5656 5657 -- : BFD_RELOC_390_PC12DBL 5658 PC relative 12 bit shifted by 1. 5659 5660 -- : BFD_RELOC_390_PLT12DBL 5661 12 bit PC rel. PLT shifted by 1. 5662 5663 -- : BFD_RELOC_390_PC16DBL 5664 PC relative 16 bit shifted by 1. 5665 5666 -- : BFD_RELOC_390_PLT16DBL 5667 16 bit PC rel. PLT shifted by 1. 5668 5669 -- : BFD_RELOC_390_PC24DBL 5670 PC relative 24 bit shifted by 1. 5671 5672 -- : BFD_RELOC_390_PLT24DBL 5673 24 bit PC rel. PLT shifted by 1. 5674 5675 -- : BFD_RELOC_390_PC32DBL 5676 PC relative 32 bit shifted by 1. 5677 5678 -- : BFD_RELOC_390_PLT32DBL 5679 32 bit PC rel. PLT shifted by 1. 5680 5681 -- : BFD_RELOC_390_GOTPCDBL 5682 32 bit PC rel. GOT shifted by 1. 5683 5684 -- : BFD_RELOC_390_GOT64 5685 64 bit GOT offset. 5686 5687 -- : BFD_RELOC_390_PLT64 5688 64 bit PC relative PLT address. 5689 5690 -- : BFD_RELOC_390_GOTENT 5691 32 bit rel. offset to GOT entry. 5692 5693 -- : BFD_RELOC_390_GOTOFF64 5694 64 bit offset to GOT. 5695 5696 -- : BFD_RELOC_390_GOTPLT12 5697 12-bit offset to symbol-entry within GOT, with PLT handling. 5698 5699 -- : BFD_RELOC_390_GOTPLT16 5700 16-bit offset to symbol-entry within GOT, with PLT handling. 5701 5702 -- : BFD_RELOC_390_GOTPLT32 5703 32-bit offset to symbol-entry within GOT, with PLT handling. 5704 5705 -- : BFD_RELOC_390_GOTPLT64 5706 64-bit offset to symbol-entry within GOT, with PLT handling. 5707 5708 -- : BFD_RELOC_390_GOTPLTENT 5709 32-bit rel. offset to symbol-entry within GOT, with PLT handling. 5710 5711 -- : BFD_RELOC_390_PLTOFF16 5712 16-bit rel. offset from the GOT to a PLT entry. 5713 5714 -- : BFD_RELOC_390_PLTOFF32 5715 32-bit rel. offset from the GOT to a PLT entry. 5716 5717 -- : BFD_RELOC_390_PLTOFF64 5718 64-bit rel. offset from the GOT to a PLT entry. 5719 5720 -- : BFD_RELOC_390_TLS_LOAD 5721 -- : BFD_RELOC_390_TLS_GDCALL 5722 -- : BFD_RELOC_390_TLS_LDCALL 5723 -- : BFD_RELOC_390_TLS_GD32 5724 -- : BFD_RELOC_390_TLS_GD64 5725 -- : BFD_RELOC_390_TLS_GOTIE12 5726 -- : BFD_RELOC_390_TLS_GOTIE32 5727 -- : BFD_RELOC_390_TLS_GOTIE64 5728 -- : BFD_RELOC_390_TLS_LDM32 5729 -- : BFD_RELOC_390_TLS_LDM64 5730 -- : BFD_RELOC_390_TLS_IE32 5731 -- : BFD_RELOC_390_TLS_IE64 5732 -- : BFD_RELOC_390_TLS_IEENT 5733 -- : BFD_RELOC_390_TLS_LE32 5734 -- : BFD_RELOC_390_TLS_LE64 5735 -- : BFD_RELOC_390_TLS_LDO32 5736 -- : BFD_RELOC_390_TLS_LDO64 5737 -- : BFD_RELOC_390_TLS_DTPMOD 5738 -- : BFD_RELOC_390_TLS_DTPOFF 5739 -- : BFD_RELOC_390_TLS_TPOFF 5740 s390 tls relocations. 5741 5742 -- : BFD_RELOC_390_20 5743 -- : BFD_RELOC_390_GOT20 5744 -- : BFD_RELOC_390_GOTPLT20 5745 -- : BFD_RELOC_390_TLS_GOTIE20 5746 Long displacement extension. 5747 5748 -- : BFD_RELOC_390_IRELATIVE 5749 STT_GNU_IFUNC relocation. 5750 5751 -- : BFD_RELOC_SCORE_GPREL15 5752 Score relocations Low 16 bit for load/store 5753 5754 -- : BFD_RELOC_SCORE_DUMMY2 5755 -- : BFD_RELOC_SCORE_JMP 5756 This is a 24-bit reloc with the right 1 bit assumed to be 0 5757 5758 -- : BFD_RELOC_SCORE_BRANCH 5759 This is a 19-bit reloc with the right 1 bit assumed to be 0 5760 5761 -- : BFD_RELOC_SCORE_IMM30 5762 This is a 32-bit reloc for 48-bit instructions. 5763 5764 -- : BFD_RELOC_SCORE_IMM32 5765 This is a 32-bit reloc for 48-bit instructions. 5766 5767 -- : BFD_RELOC_SCORE16_JMP 5768 This is a 11-bit reloc with the right 1 bit assumed to be 0 5769 5770 -- : BFD_RELOC_SCORE16_BRANCH 5771 This is a 8-bit reloc with the right 1 bit assumed to be 0 5772 5773 -- : BFD_RELOC_SCORE_BCMP 5774 This is a 9-bit reloc with the right 1 bit assumed to be 0 5775 5776 -- : BFD_RELOC_SCORE_GOT15 5777 -- : BFD_RELOC_SCORE_GOT_LO16 5778 -- : BFD_RELOC_SCORE_CALL15 5779 -- : BFD_RELOC_SCORE_DUMMY_HI16 5780 Undocumented Score relocs 5781 5782 -- : BFD_RELOC_IP2K_FR9 5783 Scenix IP2K - 9-bit register number / data address 5784 5785 -- : BFD_RELOC_IP2K_BANK 5786 Scenix IP2K - 4-bit register/data bank number 5787 5788 -- : BFD_RELOC_IP2K_ADDR16CJP 5789 Scenix IP2K - low 13 bits of instruction word address 5790 5791 -- : BFD_RELOC_IP2K_PAGE3 5792 Scenix IP2K - high 3 bits of instruction word address 5793 5794 -- : BFD_RELOC_IP2K_LO8DATA 5795 -- : BFD_RELOC_IP2K_HI8DATA 5796 -- : BFD_RELOC_IP2K_EX8DATA 5797 Scenix IP2K - ext/low/high 8 bits of data address 5798 5799 -- : BFD_RELOC_IP2K_LO8INSN 5800 -- : BFD_RELOC_IP2K_HI8INSN 5801 Scenix IP2K - low/high 8 bits of instruction word address 5802 5803 -- : BFD_RELOC_IP2K_PC_SKIP 5804 Scenix IP2K - even/odd PC modifier to modify snb pcl.0 5805 5806 -- : BFD_RELOC_IP2K_TEXT 5807 Scenix IP2K - 16 bit word address in text section. 5808 5809 -- : BFD_RELOC_IP2K_FR_OFFSET 5810 Scenix IP2K - 7-bit sp or dp offset 5811 5812 -- : BFD_RELOC_VPE4KMATH_DATA 5813 -- : BFD_RELOC_VPE4KMATH_INSN 5814 Scenix VPE4K coprocessor - data/insn-space addressing 5815 5816 -- : BFD_RELOC_VTABLE_INHERIT 5817 -- : BFD_RELOC_VTABLE_ENTRY 5818 These two relocations are used by the linker to determine which of 5819 the entries in a C++ virtual function table are actually used. 5820 When the -gc-sections option is given, the linker will zero out 5821 the entries that are not used, so that the code for those 5822 functions need not be included in the output. 5823 5824 VTABLE_INHERIT is a zero-space relocation used to describe to the 5825 linker the inheritance tree of a C++ virtual function table. The 5826 relocation's symbol should be the parent class' vtable, and the 5827 relocation should be located at the child vtable. 5828 5829 VTABLE_ENTRY is a zero-space relocation that describes the use of a 5830 virtual function table entry. The reloc's symbol should refer to 5831 the table of the class mentioned in the code. Off of that base, 5832 an offset describes the entry that is being used. For Rela hosts, 5833 this offset is stored in the reloc's addend. For Rel hosts, we 5834 are forced to put this offset in the reloc's section offset. 5835 5836 -- : BFD_RELOC_IA64_IMM14 5837 -- : BFD_RELOC_IA64_IMM22 5838 -- : BFD_RELOC_IA64_IMM64 5839 -- : BFD_RELOC_IA64_DIR32MSB 5840 -- : BFD_RELOC_IA64_DIR32LSB 5841 -- : BFD_RELOC_IA64_DIR64MSB 5842 -- : BFD_RELOC_IA64_DIR64LSB 5843 -- : BFD_RELOC_IA64_GPREL22 5844 -- : BFD_RELOC_IA64_GPREL64I 5845 -- : BFD_RELOC_IA64_GPREL32MSB 5846 -- : BFD_RELOC_IA64_GPREL32LSB 5847 -- : BFD_RELOC_IA64_GPREL64MSB 5848 -- : BFD_RELOC_IA64_GPREL64LSB 5849 -- : BFD_RELOC_IA64_LTOFF22 5850 -- : BFD_RELOC_IA64_LTOFF64I 5851 -- : BFD_RELOC_IA64_PLTOFF22 5852 -- : BFD_RELOC_IA64_PLTOFF64I 5853 -- : BFD_RELOC_IA64_PLTOFF64MSB 5854 -- : BFD_RELOC_IA64_PLTOFF64LSB 5855 -- : BFD_RELOC_IA64_FPTR64I 5856 -- : BFD_RELOC_IA64_FPTR32MSB 5857 -- : BFD_RELOC_IA64_FPTR32LSB 5858 -- : BFD_RELOC_IA64_FPTR64MSB 5859 -- : BFD_RELOC_IA64_FPTR64LSB 5860 -- : BFD_RELOC_IA64_PCREL21B 5861 -- : BFD_RELOC_IA64_PCREL21BI 5862 -- : BFD_RELOC_IA64_PCREL21M 5863 -- : BFD_RELOC_IA64_PCREL21F 5864 -- : BFD_RELOC_IA64_PCREL22 5865 -- : BFD_RELOC_IA64_PCREL60B 5866 -- : BFD_RELOC_IA64_PCREL64I 5867 -- : BFD_RELOC_IA64_PCREL32MSB 5868 -- : BFD_RELOC_IA64_PCREL32LSB 5869 -- : BFD_RELOC_IA64_PCREL64MSB 5870 -- : BFD_RELOC_IA64_PCREL64LSB 5871 -- : BFD_RELOC_IA64_LTOFF_FPTR22 5872 -- : BFD_RELOC_IA64_LTOFF_FPTR64I 5873 -- : BFD_RELOC_IA64_LTOFF_FPTR32MSB 5874 -- : BFD_RELOC_IA64_LTOFF_FPTR32LSB 5875 -- : BFD_RELOC_IA64_LTOFF_FPTR64MSB 5876 -- : BFD_RELOC_IA64_LTOFF_FPTR64LSB 5877 -- : BFD_RELOC_IA64_SEGREL32MSB 5878 -- : BFD_RELOC_IA64_SEGREL32LSB 5879 -- : BFD_RELOC_IA64_SEGREL64MSB 5880 -- : BFD_RELOC_IA64_SEGREL64LSB 5881 -- : BFD_RELOC_IA64_SECREL32MSB 5882 -- : BFD_RELOC_IA64_SECREL32LSB 5883 -- : BFD_RELOC_IA64_SECREL64MSB 5884 -- : BFD_RELOC_IA64_SECREL64LSB 5885 -- : BFD_RELOC_IA64_REL32MSB 5886 -- : BFD_RELOC_IA64_REL32LSB 5887 -- : BFD_RELOC_IA64_REL64MSB 5888 -- : BFD_RELOC_IA64_REL64LSB 5889 -- : BFD_RELOC_IA64_LTV32MSB 5890 -- : BFD_RELOC_IA64_LTV32LSB 5891 -- : BFD_RELOC_IA64_LTV64MSB 5892 -- : BFD_RELOC_IA64_LTV64LSB 5893 -- : BFD_RELOC_IA64_IPLTMSB 5894 -- : BFD_RELOC_IA64_IPLTLSB 5895 -- : BFD_RELOC_IA64_COPY 5896 -- : BFD_RELOC_IA64_LTOFF22X 5897 -- : BFD_RELOC_IA64_LDXMOV 5898 -- : BFD_RELOC_IA64_TPREL14 5899 -- : BFD_RELOC_IA64_TPREL22 5900 -- : BFD_RELOC_IA64_TPREL64I 5901 -- : BFD_RELOC_IA64_TPREL64MSB 5902 -- : BFD_RELOC_IA64_TPREL64LSB 5903 -- : BFD_RELOC_IA64_LTOFF_TPREL22 5904 -- : BFD_RELOC_IA64_DTPMOD64MSB 5905 -- : BFD_RELOC_IA64_DTPMOD64LSB 5906 -- : BFD_RELOC_IA64_LTOFF_DTPMOD22 5907 -- : BFD_RELOC_IA64_DTPREL14 5908 -- : BFD_RELOC_IA64_DTPREL22 5909 -- : BFD_RELOC_IA64_DTPREL64I 5910 -- : BFD_RELOC_IA64_DTPREL32MSB 5911 -- : BFD_RELOC_IA64_DTPREL32LSB 5912 -- : BFD_RELOC_IA64_DTPREL64MSB 5913 -- : BFD_RELOC_IA64_DTPREL64LSB 5914 -- : BFD_RELOC_IA64_LTOFF_DTPREL22 5915 Intel IA64 Relocations. 5916 5917 -- : BFD_RELOC_M68HC11_HI8 5918 Motorola 68HC11 reloc. This is the 8 bit high part of an absolute 5919 address. 5920 5921 -- : BFD_RELOC_M68HC11_LO8 5922 Motorola 68HC11 reloc. This is the 8 bit low part of an absolute 5923 address. 5924 5925 -- : BFD_RELOC_M68HC11_3B 5926 Motorola 68HC11 reloc. This is the 3 bit of a value. 5927 5928 -- : BFD_RELOC_M68HC11_RL_JUMP 5929 Motorola 68HC11 reloc. This reloc marks the beginning of a 5930 jump/call instruction. It is used for linker relaxation to 5931 correctly identify beginning of instruction and change some 5932 branches to use PC-relative addressing mode. 5933 5934 -- : BFD_RELOC_M68HC11_RL_GROUP 5935 Motorola 68HC11 reloc. This reloc marks a group of several 5936 instructions that gcc generates and for which the linker 5937 relaxation pass can modify and/or remove some of them. 5938 5939 -- : BFD_RELOC_M68HC11_LO16 5940 Motorola 68HC11 reloc. This is the 16-bit lower part of an 5941 address. It is used for 'call' instruction to specify the symbol 5942 address without any special transformation (due to memory bank 5943 window). 5944 5945 -- : BFD_RELOC_M68HC11_PAGE 5946 Motorola 68HC11 reloc. This is a 8-bit reloc that specifies the 5947 page number of an address. It is used by 'call' instruction to 5948 specify the page number of the symbol. 5949 5950 -- : BFD_RELOC_M68HC11_24 5951 Motorola 68HC11 reloc. This is a 24-bit reloc that represents the 5952 address with a 16-bit value and a 8-bit page number. The symbol 5953 address is transformed to follow the 16K memory bank of 68HC12 5954 (seen as mapped in the window). 5955 5956 -- : BFD_RELOC_M68HC12_5B 5957 Motorola 68HC12 reloc. This is the 5 bits of a value. 5958 5959 -- : BFD_RELOC_XGATE_RL_JUMP 5960 Freescale XGATE reloc. This reloc marks the beginning of a 5961 bra/jal instruction. 5962 5963 -- : BFD_RELOC_XGATE_RL_GROUP 5964 Freescale XGATE reloc. This reloc marks a group of several 5965 instructions that gcc generates and for which the linker 5966 relaxation pass can modify and/or remove some of them. 5967 5968 -- : BFD_RELOC_XGATE_LO16 5969 Freescale XGATE reloc. This is the 16-bit lower part of an 5970 address. It is used for the '16-bit' instructions. 5971 5972 -- : BFD_RELOC_XGATE_GPAGE 5973 Freescale XGATE reloc. 5974 5975 -- : BFD_RELOC_XGATE_24 5976 Freescale XGATE reloc. 5977 5978 -- : BFD_RELOC_XGATE_PCREL_9 5979 Freescale XGATE reloc. This is a 9-bit pc-relative reloc. 5980 5981 -- : BFD_RELOC_XGATE_PCREL_10 5982 Freescale XGATE reloc. This is a 10-bit pc-relative reloc. 5983 5984 -- : BFD_RELOC_XGATE_IMM8_LO 5985 Freescale XGATE reloc. This is the 16-bit lower part of an 5986 address. It is used for the '16-bit' instructions. 5987 5988 -- : BFD_RELOC_XGATE_IMM8_HI 5989 Freescale XGATE reloc. This is the 16-bit higher part of an 5990 address. It is used for the '16-bit' instructions. 5991 5992 -- : BFD_RELOC_XGATE_IMM3 5993 Freescale XGATE reloc. This is a 3-bit pc-relative reloc. 5994 5995 -- : BFD_RELOC_XGATE_IMM4 5996 Freescale XGATE reloc. This is a 4-bit pc-relative reloc. 5997 5998 -- : BFD_RELOC_XGATE_IMM5 5999 Freescale XGATE reloc. This is a 5-bit pc-relative reloc. 6000 6001 -- : BFD_RELOC_M68HC12_9B 6002 Motorola 68HC12 reloc. This is the 9 bits of a value. 6003 6004 -- : BFD_RELOC_M68HC12_16B 6005 Motorola 68HC12 reloc. This is the 16 bits of a value. 6006 6007 -- : BFD_RELOC_M68HC12_9_PCREL 6008 Motorola 68HC12/XGATE reloc. This is a PCREL9 branch. 6009 6010 -- : BFD_RELOC_M68HC12_10_PCREL 6011 Motorola 68HC12/XGATE reloc. This is a PCREL10 branch. 6012 6013 -- : BFD_RELOC_M68HC12_LO8XG 6014 Motorola 68HC12/XGATE reloc. This is the 8 bit low part of an 6015 absolute address and immediately precedes a matching HI8XG part. 6016 6017 -- : BFD_RELOC_M68HC12_HI8XG 6018 Motorola 68HC12/XGATE reloc. This is the 8 bit high part of an 6019 absolute address and immediately follows a matching LO8XG part. 6020 6021 -- : BFD_RELOC_16C_NUM08 6022 -- : BFD_RELOC_16C_NUM08_C 6023 -- : BFD_RELOC_16C_NUM16 6024 -- : BFD_RELOC_16C_NUM16_C 6025 -- : BFD_RELOC_16C_NUM32 6026 -- : BFD_RELOC_16C_NUM32_C 6027 -- : BFD_RELOC_16C_DISP04 6028 -- : BFD_RELOC_16C_DISP04_C 6029 -- : BFD_RELOC_16C_DISP08 6030 -- : BFD_RELOC_16C_DISP08_C 6031 -- : BFD_RELOC_16C_DISP16 6032 -- : BFD_RELOC_16C_DISP16_C 6033 -- : BFD_RELOC_16C_DISP24 6034 -- : BFD_RELOC_16C_DISP24_C 6035 -- : BFD_RELOC_16C_DISP24a 6036 -- : BFD_RELOC_16C_DISP24a_C 6037 -- : BFD_RELOC_16C_REG04 6038 -- : BFD_RELOC_16C_REG04_C 6039 -- : BFD_RELOC_16C_REG04a 6040 -- : BFD_RELOC_16C_REG04a_C 6041 -- : BFD_RELOC_16C_REG14 6042 -- : BFD_RELOC_16C_REG14_C 6043 -- : BFD_RELOC_16C_REG16 6044 -- : BFD_RELOC_16C_REG16_C 6045 -- : BFD_RELOC_16C_REG20 6046 -- : BFD_RELOC_16C_REG20_C 6047 -- : BFD_RELOC_16C_ABS20 6048 -- : BFD_RELOC_16C_ABS20_C 6049 -- : BFD_RELOC_16C_ABS24 6050 -- : BFD_RELOC_16C_ABS24_C 6051 -- : BFD_RELOC_16C_IMM04 6052 -- : BFD_RELOC_16C_IMM04_C 6053 -- : BFD_RELOC_16C_IMM16 6054 -- : BFD_RELOC_16C_IMM16_C 6055 -- : BFD_RELOC_16C_IMM20 6056 -- : BFD_RELOC_16C_IMM20_C 6057 -- : BFD_RELOC_16C_IMM24 6058 -- : BFD_RELOC_16C_IMM24_C 6059 -- : BFD_RELOC_16C_IMM32 6060 -- : BFD_RELOC_16C_IMM32_C 6061 NS CR16C Relocations. 6062 6063 -- : BFD_RELOC_CR16_NUM8 6064 -- : BFD_RELOC_CR16_NUM16 6065 -- : BFD_RELOC_CR16_NUM32 6066 -- : BFD_RELOC_CR16_NUM32a 6067 -- : BFD_RELOC_CR16_REGREL0 6068 -- : BFD_RELOC_CR16_REGREL4 6069 -- : BFD_RELOC_CR16_REGREL4a 6070 -- : BFD_RELOC_CR16_REGREL14 6071 -- : BFD_RELOC_CR16_REGREL14a 6072 -- : BFD_RELOC_CR16_REGREL16 6073 -- : BFD_RELOC_CR16_REGREL20 6074 -- : BFD_RELOC_CR16_REGREL20a 6075 -- : BFD_RELOC_CR16_ABS20 6076 -- : BFD_RELOC_CR16_ABS24 6077 -- : BFD_RELOC_CR16_IMM4 6078 -- : BFD_RELOC_CR16_IMM8 6079 -- : BFD_RELOC_CR16_IMM16 6080 -- : BFD_RELOC_CR16_IMM20 6081 -- : BFD_RELOC_CR16_IMM24 6082 -- : BFD_RELOC_CR16_IMM32 6083 -- : BFD_RELOC_CR16_IMM32a 6084 -- : BFD_RELOC_CR16_DISP4 6085 -- : BFD_RELOC_CR16_DISP8 6086 -- : BFD_RELOC_CR16_DISP16 6087 -- : BFD_RELOC_CR16_DISP20 6088 -- : BFD_RELOC_CR16_DISP24 6089 -- : BFD_RELOC_CR16_DISP24a 6090 -- : BFD_RELOC_CR16_SWITCH8 6091 -- : BFD_RELOC_CR16_SWITCH16 6092 -- : BFD_RELOC_CR16_SWITCH32 6093 -- : BFD_RELOC_CR16_GOT_REGREL20 6094 -- : BFD_RELOC_CR16_GOTC_REGREL20 6095 -- : BFD_RELOC_CR16_GLOB_DAT 6096 NS CR16 Relocations. 6097 6098 -- : BFD_RELOC_CRX_REL4 6099 -- : BFD_RELOC_CRX_REL8 6100 -- : BFD_RELOC_CRX_REL8_CMP 6101 -- : BFD_RELOC_CRX_REL16 6102 -- : BFD_RELOC_CRX_REL24 6103 -- : BFD_RELOC_CRX_REL32 6104 -- : BFD_RELOC_CRX_REGREL12 6105 -- : BFD_RELOC_CRX_REGREL22 6106 -- : BFD_RELOC_CRX_REGREL28 6107 -- : BFD_RELOC_CRX_REGREL32 6108 -- : BFD_RELOC_CRX_ABS16 6109 -- : BFD_RELOC_CRX_ABS32 6110 -- : BFD_RELOC_CRX_NUM8 6111 -- : BFD_RELOC_CRX_NUM16 6112 -- : BFD_RELOC_CRX_NUM32 6113 -- : BFD_RELOC_CRX_IMM16 6114 -- : BFD_RELOC_CRX_IMM32 6115 -- : BFD_RELOC_CRX_SWITCH8 6116 -- : BFD_RELOC_CRX_SWITCH16 6117 -- : BFD_RELOC_CRX_SWITCH32 6118 NS CRX Relocations. 6119 6120 -- : BFD_RELOC_CRIS_BDISP8 6121 -- : BFD_RELOC_CRIS_UNSIGNED_5 6122 -- : BFD_RELOC_CRIS_SIGNED_6 6123 -- : BFD_RELOC_CRIS_UNSIGNED_6 6124 -- : BFD_RELOC_CRIS_SIGNED_8 6125 -- : BFD_RELOC_CRIS_UNSIGNED_8 6126 -- : BFD_RELOC_CRIS_SIGNED_16 6127 -- : BFD_RELOC_CRIS_UNSIGNED_16 6128 -- : BFD_RELOC_CRIS_LAPCQ_OFFSET 6129 -- : BFD_RELOC_CRIS_UNSIGNED_4 6130 These relocs are only used within the CRIS assembler. They are not 6131 (at present) written to any object files. 6132 6133 -- : BFD_RELOC_CRIS_COPY 6134 -- : BFD_RELOC_CRIS_GLOB_DAT 6135 -- : BFD_RELOC_CRIS_JUMP_SLOT 6136 -- : BFD_RELOC_CRIS_RELATIVE 6137 Relocs used in ELF shared libraries for CRIS. 6138 6139 -- : BFD_RELOC_CRIS_32_GOT 6140 32-bit offset to symbol-entry within GOT. 6141 6142 -- : BFD_RELOC_CRIS_16_GOT 6143 16-bit offset to symbol-entry within GOT. 6144 6145 -- : BFD_RELOC_CRIS_32_GOTPLT 6146 32-bit offset to symbol-entry within GOT, with PLT handling. 6147 6148 -- : BFD_RELOC_CRIS_16_GOTPLT 6149 16-bit offset to symbol-entry within GOT, with PLT handling. 6150 6151 -- : BFD_RELOC_CRIS_32_GOTREL 6152 32-bit offset to symbol, relative to GOT. 6153 6154 -- : BFD_RELOC_CRIS_32_PLT_GOTREL 6155 32-bit offset to symbol with PLT entry, relative to GOT. 6156 6157 -- : BFD_RELOC_CRIS_32_PLT_PCREL 6158 32-bit offset to symbol with PLT entry, relative to this 6159 relocation. 6160 6161 -- : BFD_RELOC_CRIS_32_GOT_GD 6162 -- : BFD_RELOC_CRIS_16_GOT_GD 6163 -- : BFD_RELOC_CRIS_32_GD 6164 -- : BFD_RELOC_CRIS_DTP 6165 -- : BFD_RELOC_CRIS_32_DTPREL 6166 -- : BFD_RELOC_CRIS_16_DTPREL 6167 -- : BFD_RELOC_CRIS_32_GOT_TPREL 6168 -- : BFD_RELOC_CRIS_16_GOT_TPREL 6169 -- : BFD_RELOC_CRIS_32_TPREL 6170 -- : BFD_RELOC_CRIS_16_TPREL 6171 -- : BFD_RELOC_CRIS_DTPMOD 6172 -- : BFD_RELOC_CRIS_32_IE 6173 Relocs used in TLS code for CRIS. 6174 6175 -- : BFD_RELOC_860_COPY 6176 -- : BFD_RELOC_860_GLOB_DAT 6177 -- : BFD_RELOC_860_JUMP_SLOT 6178 -- : BFD_RELOC_860_RELATIVE 6179 -- : BFD_RELOC_860_PC26 6180 -- : BFD_RELOC_860_PLT26 6181 -- : BFD_RELOC_860_PC16 6182 -- : BFD_RELOC_860_LOW0 6183 -- : BFD_RELOC_860_SPLIT0 6184 -- : BFD_RELOC_860_LOW1 6185 -- : BFD_RELOC_860_SPLIT1 6186 -- : BFD_RELOC_860_LOW2 6187 -- : BFD_RELOC_860_SPLIT2 6188 -- : BFD_RELOC_860_LOW3 6189 -- : BFD_RELOC_860_LOGOT0 6190 -- : BFD_RELOC_860_SPGOT0 6191 -- : BFD_RELOC_860_LOGOT1 6192 -- : BFD_RELOC_860_SPGOT1 6193 -- : BFD_RELOC_860_LOGOTOFF0 6194 -- : BFD_RELOC_860_SPGOTOFF0 6195 -- : BFD_RELOC_860_LOGOTOFF1 6196 -- : BFD_RELOC_860_SPGOTOFF1 6197 -- : BFD_RELOC_860_LOGOTOFF2 6198 -- : BFD_RELOC_860_LOGOTOFF3 6199 -- : BFD_RELOC_860_LOPC 6200 -- : BFD_RELOC_860_HIGHADJ 6201 -- : BFD_RELOC_860_HAGOT 6202 -- : BFD_RELOC_860_HAGOTOFF 6203 -- : BFD_RELOC_860_HAPC 6204 -- : BFD_RELOC_860_HIGH 6205 -- : BFD_RELOC_860_HIGOT 6206 -- : BFD_RELOC_860_HIGOTOFF 6207 Intel i860 Relocations. 6208 6209 -- : BFD_RELOC_OR1K_REL_26 6210 -- : BFD_RELOC_OR1K_GOTPC_HI16 6211 -- : BFD_RELOC_OR1K_GOTPC_LO16 6212 -- : BFD_RELOC_OR1K_GOT16 6213 -- : BFD_RELOC_OR1K_PLT26 6214 -- : BFD_RELOC_OR1K_GOTOFF_HI16 6215 -- : BFD_RELOC_OR1K_GOTOFF_LO16 6216 -- : BFD_RELOC_OR1K_COPY 6217 -- : BFD_RELOC_OR1K_GLOB_DAT 6218 -- : BFD_RELOC_OR1K_JMP_SLOT 6219 -- : BFD_RELOC_OR1K_RELATIVE 6220 -- : BFD_RELOC_OR1K_TLS_GD_HI16 6221 -- : BFD_RELOC_OR1K_TLS_GD_LO16 6222 -- : BFD_RELOC_OR1K_TLS_LDM_HI16 6223 -- : BFD_RELOC_OR1K_TLS_LDM_LO16 6224 -- : BFD_RELOC_OR1K_TLS_LDO_HI16 6225 -- : BFD_RELOC_OR1K_TLS_LDO_LO16 6226 -- : BFD_RELOC_OR1K_TLS_IE_HI16 6227 -- : BFD_RELOC_OR1K_TLS_IE_LO16 6228 -- : BFD_RELOC_OR1K_TLS_LE_HI16 6229 -- : BFD_RELOC_OR1K_TLS_LE_LO16 6230 -- : BFD_RELOC_OR1K_TLS_TPOFF 6231 -- : BFD_RELOC_OR1K_TLS_DTPOFF 6232 -- : BFD_RELOC_OR1K_TLS_DTPMOD 6233 OpenRISC 1000 Relocations. 6234 6235 -- : BFD_RELOC_H8_DIR16A8 6236 -- : BFD_RELOC_H8_DIR16R8 6237 -- : BFD_RELOC_H8_DIR24A8 6238 -- : BFD_RELOC_H8_DIR24R8 6239 -- : BFD_RELOC_H8_DIR32A16 6240 -- : BFD_RELOC_H8_DISP32A16 6241 H8 elf Relocations. 6242 6243 -- : BFD_RELOC_XSTORMY16_REL_12 6244 -- : BFD_RELOC_XSTORMY16_12 6245 -- : BFD_RELOC_XSTORMY16_24 6246 -- : BFD_RELOC_XSTORMY16_FPTR16 6247 Sony Xstormy16 Relocations. 6248 6249 -- : BFD_RELOC_RELC 6250 Self-describing complex relocations. 6251 6252 -- : BFD_RELOC_XC16X_PAG 6253 -- : BFD_RELOC_XC16X_POF 6254 -- : BFD_RELOC_XC16X_SEG 6255 -- : BFD_RELOC_XC16X_SOF 6256 Infineon Relocations. 6257 6258 -- : BFD_RELOC_VAX_GLOB_DAT 6259 -- : BFD_RELOC_VAX_JMP_SLOT 6260 -- : BFD_RELOC_VAX_RELATIVE 6261 Relocations used by VAX ELF. 6262 6263 -- : BFD_RELOC_MT_PC16 6264 Morpho MT - 16 bit immediate relocation. 6265 6266 -- : BFD_RELOC_MT_HI16 6267 Morpho MT - Hi 16 bits of an address. 6268 6269 -- : BFD_RELOC_MT_LO16 6270 Morpho MT - Low 16 bits of an address. 6271 6272 -- : BFD_RELOC_MT_GNU_VTINHERIT 6273 Morpho MT - Used to tell the linker which vtable entries are used. 6274 6275 -- : BFD_RELOC_MT_GNU_VTENTRY 6276 Morpho MT - Used to tell the linker which vtable entries are used. 6277 6278 -- : BFD_RELOC_MT_PCINSN8 6279 Morpho MT - 8 bit immediate relocation. 6280 6281 -- : BFD_RELOC_MSP430_10_PCREL 6282 -- : BFD_RELOC_MSP430_16_PCREL 6283 -- : BFD_RELOC_MSP430_16 6284 -- : BFD_RELOC_MSP430_16_PCREL_BYTE 6285 -- : BFD_RELOC_MSP430_16_BYTE 6286 -- : BFD_RELOC_MSP430_2X_PCREL 6287 -- : BFD_RELOC_MSP430_RL_PCREL 6288 -- : BFD_RELOC_MSP430_ABS8 6289 -- : BFD_RELOC_MSP430X_PCR20_EXT_SRC 6290 -- : BFD_RELOC_MSP430X_PCR20_EXT_DST 6291 -- : BFD_RELOC_MSP430X_PCR20_EXT_ODST 6292 -- : BFD_RELOC_MSP430X_ABS20_EXT_SRC 6293 -- : BFD_RELOC_MSP430X_ABS20_EXT_DST 6294 -- : BFD_RELOC_MSP430X_ABS20_EXT_ODST 6295 -- : BFD_RELOC_MSP430X_ABS20_ADR_SRC 6296 -- : BFD_RELOC_MSP430X_ABS20_ADR_DST 6297 -- : BFD_RELOC_MSP430X_PCR16 6298 -- : BFD_RELOC_MSP430X_PCR20_CALL 6299 -- : BFD_RELOC_MSP430X_ABS16 6300 -- : BFD_RELOC_MSP430_ABS_HI16 6301 -- : BFD_RELOC_MSP430_PREL31 6302 -- : BFD_RELOC_MSP430_SYM_DIFF 6303 msp430 specific relocation codes 6304 6305 -- : BFD_RELOC_NIOS2_S16 6306 -- : BFD_RELOC_NIOS2_U16 6307 -- : BFD_RELOC_NIOS2_CALL26 6308 -- : BFD_RELOC_NIOS2_IMM5 6309 -- : BFD_RELOC_NIOS2_CACHE_OPX 6310 -- : BFD_RELOC_NIOS2_IMM6 6311 -- : BFD_RELOC_NIOS2_IMM8 6312 -- : BFD_RELOC_NIOS2_HI16 6313 -- : BFD_RELOC_NIOS2_LO16 6314 -- : BFD_RELOC_NIOS2_HIADJ16 6315 -- : BFD_RELOC_NIOS2_GPREL 6316 -- : BFD_RELOC_NIOS2_UJMP 6317 -- : BFD_RELOC_NIOS2_CJMP 6318 -- : BFD_RELOC_NIOS2_CALLR 6319 -- : BFD_RELOC_NIOS2_ALIGN 6320 -- : BFD_RELOC_NIOS2_GOT16 6321 -- : BFD_RELOC_NIOS2_CALL16 6322 -- : BFD_RELOC_NIOS2_GOTOFF_LO 6323 -- : BFD_RELOC_NIOS2_GOTOFF_HA 6324 -- : BFD_RELOC_NIOS2_PCREL_LO 6325 -- : BFD_RELOC_NIOS2_PCREL_HA 6326 -- : BFD_RELOC_NIOS2_TLS_GD16 6327 -- : BFD_RELOC_NIOS2_TLS_LDM16 6328 -- : BFD_RELOC_NIOS2_TLS_LDO16 6329 -- : BFD_RELOC_NIOS2_TLS_IE16 6330 -- : BFD_RELOC_NIOS2_TLS_LE16 6331 -- : BFD_RELOC_NIOS2_TLS_DTPMOD 6332 -- : BFD_RELOC_NIOS2_TLS_DTPREL 6333 -- : BFD_RELOC_NIOS2_TLS_TPREL 6334 -- : BFD_RELOC_NIOS2_COPY 6335 -- : BFD_RELOC_NIOS2_GLOB_DAT 6336 -- : BFD_RELOC_NIOS2_JUMP_SLOT 6337 -- : BFD_RELOC_NIOS2_RELATIVE 6338 -- : BFD_RELOC_NIOS2_GOTOFF 6339 -- : BFD_RELOC_NIOS2_CALL26_NOAT 6340 -- : BFD_RELOC_NIOS2_GOT_LO 6341 -- : BFD_RELOC_NIOS2_GOT_HA 6342 -- : BFD_RELOC_NIOS2_CALL_LO 6343 -- : BFD_RELOC_NIOS2_CALL_HA 6344 -- : BFD_RELOC_NIOS2_R2_S12 6345 -- : BFD_RELOC_NIOS2_R2_I10_1_PCREL 6346 -- : BFD_RELOC_NIOS2_R2_T1I7_1_PCREL 6347 -- : BFD_RELOC_NIOS2_R2_T1I7_2 6348 -- : BFD_RELOC_NIOS2_R2_T2I4 6349 -- : BFD_RELOC_NIOS2_R2_T2I4_1 6350 -- : BFD_RELOC_NIOS2_R2_T2I4_2 6351 -- : BFD_RELOC_NIOS2_R2_X1I7_2 6352 -- : BFD_RELOC_NIOS2_R2_X2L5 6353 -- : BFD_RELOC_NIOS2_R2_F1I5_2 6354 -- : BFD_RELOC_NIOS2_R2_L5I4X1 6355 -- : BFD_RELOC_NIOS2_R2_T1X1I6 6356 -- : BFD_RELOC_NIOS2_R2_T1X1I6_2 6357 Relocations used by the Altera Nios II core. 6358 6359 -- : BFD_RELOC_IQ2000_OFFSET_16 6360 -- : BFD_RELOC_IQ2000_OFFSET_21 6361 -- : BFD_RELOC_IQ2000_UHI16 6362 IQ2000 Relocations. 6363 6364 -- : BFD_RELOC_XTENSA_RTLD 6365 Special Xtensa relocation used only by PLT entries in ELF shared 6366 objects to indicate that the runtime linker should set the value 6367 to one of its own internal functions or data structures. 6368 6369 -- : BFD_RELOC_XTENSA_GLOB_DAT 6370 -- : BFD_RELOC_XTENSA_JMP_SLOT 6371 -- : BFD_RELOC_XTENSA_RELATIVE 6372 Xtensa relocations for ELF shared objects. 6373 6374 -- : BFD_RELOC_XTENSA_PLT 6375 Xtensa relocation used in ELF object files for symbols that may 6376 require PLT entries. Otherwise, this is just a generic 32-bit 6377 relocation. 6378 6379 -- : BFD_RELOC_XTENSA_DIFF8 6380 -- : BFD_RELOC_XTENSA_DIFF16 6381 -- : BFD_RELOC_XTENSA_DIFF32 6382 Xtensa relocations to mark the difference of two local symbols. 6383 These are only needed to support linker relaxation and can be 6384 ignored when not relaxing. The field is set to the value of the 6385 difference assuming no relaxation. The relocation encodes the 6386 position of the first symbol so the linker can determine whether 6387 to adjust the field value. 6388 6389 -- : BFD_RELOC_XTENSA_SLOT0_OP 6390 -- : BFD_RELOC_XTENSA_SLOT1_OP 6391 -- : BFD_RELOC_XTENSA_SLOT2_OP 6392 -- : BFD_RELOC_XTENSA_SLOT3_OP 6393 -- : BFD_RELOC_XTENSA_SLOT4_OP 6394 -- : BFD_RELOC_XTENSA_SLOT5_OP 6395 -- : BFD_RELOC_XTENSA_SLOT6_OP 6396 -- : BFD_RELOC_XTENSA_SLOT7_OP 6397 -- : BFD_RELOC_XTENSA_SLOT8_OP 6398 -- : BFD_RELOC_XTENSA_SLOT9_OP 6399 -- : BFD_RELOC_XTENSA_SLOT10_OP 6400 -- : BFD_RELOC_XTENSA_SLOT11_OP 6401 -- : BFD_RELOC_XTENSA_SLOT12_OP 6402 -- : BFD_RELOC_XTENSA_SLOT13_OP 6403 -- : BFD_RELOC_XTENSA_SLOT14_OP 6404 Generic Xtensa relocations for instruction operands. Only the slot 6405 number is encoded in the relocation. The relocation applies to the 6406 last PC-relative immediate operand, or if there are no PC-relative 6407 immediates, to the last immediate operand. 6408 6409 -- : BFD_RELOC_XTENSA_SLOT0_ALT 6410 -- : BFD_RELOC_XTENSA_SLOT1_ALT 6411 -- : BFD_RELOC_XTENSA_SLOT2_ALT 6412 -- : BFD_RELOC_XTENSA_SLOT3_ALT 6413 -- : BFD_RELOC_XTENSA_SLOT4_ALT 6414 -- : BFD_RELOC_XTENSA_SLOT5_ALT 6415 -- : BFD_RELOC_XTENSA_SLOT6_ALT 6416 -- : BFD_RELOC_XTENSA_SLOT7_ALT 6417 -- : BFD_RELOC_XTENSA_SLOT8_ALT 6418 -- : BFD_RELOC_XTENSA_SLOT9_ALT 6419 -- : BFD_RELOC_XTENSA_SLOT10_ALT 6420 -- : BFD_RELOC_XTENSA_SLOT11_ALT 6421 -- : BFD_RELOC_XTENSA_SLOT12_ALT 6422 -- : BFD_RELOC_XTENSA_SLOT13_ALT 6423 -- : BFD_RELOC_XTENSA_SLOT14_ALT 6424 Alternate Xtensa relocations. Only the slot is encoded in the 6425 relocation. The meaning of these relocations is opcode-specific. 6426 6427 -- : BFD_RELOC_XTENSA_OP0 6428 -- : BFD_RELOC_XTENSA_OP1 6429 -- : BFD_RELOC_XTENSA_OP2 6430 Xtensa relocations for backward compatibility. These have all been 6431 replaced by BFD_RELOC_XTENSA_SLOT0_OP. 6432 6433 -- : BFD_RELOC_XTENSA_ASM_EXPAND 6434 Xtensa relocation to mark that the assembler expanded the 6435 instructions from an original target. The expansion size is 6436 encoded in the reloc size. 6437 6438 -- : BFD_RELOC_XTENSA_ASM_SIMPLIFY 6439 Xtensa relocation to mark that the linker should simplify 6440 assembler-expanded instructions. This is commonly used internally 6441 by the linker after analysis of a BFD_RELOC_XTENSA_ASM_EXPAND. 6442 6443 -- : BFD_RELOC_XTENSA_TLSDESC_FN 6444 -- : BFD_RELOC_XTENSA_TLSDESC_ARG 6445 -- : BFD_RELOC_XTENSA_TLS_DTPOFF 6446 -- : BFD_RELOC_XTENSA_TLS_TPOFF 6447 -- : BFD_RELOC_XTENSA_TLS_FUNC 6448 -- : BFD_RELOC_XTENSA_TLS_ARG 6449 -- : BFD_RELOC_XTENSA_TLS_CALL 6450 Xtensa TLS relocations. 6451 6452 -- : BFD_RELOC_Z80_DISP8 6453 8 bit signed offset in (ix+d) or (iy+d). 6454 6455 -- : BFD_RELOC_Z8K_DISP7 6456 DJNZ offset. 6457 6458 -- : BFD_RELOC_Z8K_CALLR 6459 CALR offset. 6460 6461 -- : BFD_RELOC_Z8K_IMM4L 6462 4 bit value. 6463 6464 -- : BFD_RELOC_LM32_CALL 6465 -- : BFD_RELOC_LM32_BRANCH 6466 -- : BFD_RELOC_LM32_16_GOT 6467 -- : BFD_RELOC_LM32_GOTOFF_HI16 6468 -- : BFD_RELOC_LM32_GOTOFF_LO16 6469 -- : BFD_RELOC_LM32_COPY 6470 -- : BFD_RELOC_LM32_GLOB_DAT 6471 -- : BFD_RELOC_LM32_JMP_SLOT 6472 -- : BFD_RELOC_LM32_RELATIVE 6473 Lattice Mico32 relocations. 6474 6475 -- : BFD_RELOC_MACH_O_SECTDIFF 6476 Difference between two section addreses. Must be followed by a 6477 BFD_RELOC_MACH_O_PAIR. 6478 6479 -- : BFD_RELOC_MACH_O_LOCAL_SECTDIFF 6480 Like BFD_RELOC_MACH_O_SECTDIFF but with a local symbol. 6481 6482 -- : BFD_RELOC_MACH_O_PAIR 6483 Pair of relocation. Contains the first symbol. 6484 6485 -- : BFD_RELOC_MACH_O_SUBTRACTOR32 6486 Symbol will be substracted. Must be followed by a BFD_RELOC_32. 6487 6488 -- : BFD_RELOC_MACH_O_SUBTRACTOR64 6489 Symbol will be substracted. Must be followed by a BFD_RELOC_64. 6490 6491 -- : BFD_RELOC_MACH_O_X86_64_BRANCH32 6492 -- : BFD_RELOC_MACH_O_X86_64_BRANCH8 6493 PCREL relocations. They are marked as branch to create PLT entry 6494 if required. 6495 6496 -- : BFD_RELOC_MACH_O_X86_64_GOT 6497 Used when referencing a GOT entry. 6498 6499 -- : BFD_RELOC_MACH_O_X86_64_GOT_LOAD 6500 Used when loading a GOT entry with movq. It is specially marked 6501 so that the linker could optimize the movq to a leaq if possible. 6502 6503 -- : BFD_RELOC_MACH_O_X86_64_PCREL32_1 6504 Same as BFD_RELOC_32_PCREL but with an implicit -1 addend. 6505 6506 -- : BFD_RELOC_MACH_O_X86_64_PCREL32_2 6507 Same as BFD_RELOC_32_PCREL but with an implicit -2 addend. 6508 6509 -- : BFD_RELOC_MACH_O_X86_64_PCREL32_4 6510 Same as BFD_RELOC_32_PCREL but with an implicit -4 addend. 6511 6512 -- : BFD_RELOC_MACH_O_ARM64_ADDEND 6513 Addend for PAGE or PAGEOFF. 6514 6515 -- : BFD_RELOC_MACH_O_ARM64_GOT_LOAD_PAGE21 6516 Relative offset to page of GOT slot. 6517 6518 -- : BFD_RELOC_MACH_O_ARM64_GOT_LOAD_PAGEOFF12 6519 Relative offset within page of GOT slot. 6520 6521 -- : BFD_RELOC_MACH_O_ARM64_POINTER_TO_GOT 6522 Address of a GOT entry. 6523 6524 -- : BFD_RELOC_MICROBLAZE_32_LO 6525 This is a 32 bit reloc for the microblaze that stores the low 16 6526 bits of a value 6527 6528 -- : BFD_RELOC_MICROBLAZE_32_LO_PCREL 6529 This is a 32 bit pc-relative reloc for the microblaze that stores 6530 the low 16 bits of a value 6531 6532 -- : BFD_RELOC_MICROBLAZE_32_ROSDA 6533 This is a 32 bit reloc for the microblaze that stores a value 6534 relative to the read-only small data area anchor 6535 6536 -- : BFD_RELOC_MICROBLAZE_32_RWSDA 6537 This is a 32 bit reloc for the microblaze that stores a value 6538 relative to the read-write small data area anchor 6539 6540 -- : BFD_RELOC_MICROBLAZE_32_SYM_OP_SYM 6541 This is a 32 bit reloc for the microblaze to handle expressions of 6542 the form "Symbol Op Symbol" 6543 6544 -- : BFD_RELOC_MICROBLAZE_64_NONE 6545 This is a 64 bit reloc that stores the 32 bit pc relative value in 6546 two words (with an imm instruction). No relocation is done here - 6547 only used for relaxing 6548 6549 -- : BFD_RELOC_MICROBLAZE_64_GOTPC 6550 This is a 64 bit reloc that stores the 32 bit pc relative value in 6551 two words (with an imm instruction). The relocation is 6552 PC-relative GOT offset 6553 6554 -- : BFD_RELOC_MICROBLAZE_64_GOT 6555 This is a 64 bit reloc that stores the 32 bit pc relative value in 6556 two words (with an imm instruction). The relocation is GOT offset 6557 6558 -- : BFD_RELOC_MICROBLAZE_64_PLT 6559 This is a 64 bit reloc that stores the 32 bit pc relative value in 6560 two words (with an imm instruction). The relocation is 6561 PC-relative offset into PLT 6562 6563 -- : BFD_RELOC_MICROBLAZE_64_GOTOFF 6564 This is a 64 bit reloc that stores the 32 bit GOT relative value 6565 in two words (with an imm instruction). The relocation is 6566 relative offset from _GLOBAL_OFFSET_TABLE_ 6567 6568 -- : BFD_RELOC_MICROBLAZE_32_GOTOFF 6569 This is a 32 bit reloc that stores the 32 bit GOT relative value 6570 in a word. The relocation is relative offset from 6571 6572 -- : BFD_RELOC_MICROBLAZE_COPY 6573 This is used to tell the dynamic linker to copy the value out of 6574 the dynamic object into the runtime process image. 6575 6576 -- : BFD_RELOC_MICROBLAZE_64_TLS 6577 Unused Reloc 6578 6579 -- : BFD_RELOC_MICROBLAZE_64_TLSGD 6580 This is a 64 bit reloc that stores the 32 bit GOT relative value 6581 of the GOT TLS GD info entry in two words (with an imm 6582 instruction). The relocation is GOT offset. 6583 6584 -- : BFD_RELOC_MICROBLAZE_64_TLSLD 6585 This is a 64 bit reloc that stores the 32 bit GOT relative value 6586 of the GOT TLS LD info entry in two words (with an imm 6587 instruction). The relocation is GOT offset. 6588 6589 -- : BFD_RELOC_MICROBLAZE_32_TLSDTPMOD 6590 This is a 32 bit reloc that stores the Module ID to GOT(n). 6591 6592 -- : BFD_RELOC_MICROBLAZE_32_TLSDTPREL 6593 This is a 32 bit reloc that stores TLS offset to GOT(n+1). 6594 6595 -- : BFD_RELOC_MICROBLAZE_64_TLSDTPREL 6596 This is a 32 bit reloc for storing TLS offset to two words (uses 6597 imm instruction) 6598 6599 -- : BFD_RELOC_MICROBLAZE_64_TLSGOTTPREL 6600 This is a 64 bit reloc that stores 32-bit thread pointer relative 6601 offset to two words (uses imm instruction). 6602 6603 -- : BFD_RELOC_MICROBLAZE_64_TLSTPREL 6604 This is a 64 bit reloc that stores 32-bit thread pointer relative 6605 offset to two words (uses imm instruction). 6606 6607 -- : BFD_RELOC_AARCH64_RELOC_START 6608 AArch64 pseudo relocation code to mark the start of the AArch64 6609 relocation enumerators. N.B. the order of the enumerators is 6610 important as several tables in the AArch64 bfd backend are indexed 6611 by these enumerators; make sure they are all synced. 6612 6613 -- : BFD_RELOC_AARCH64_NULL 6614 Deprecated AArch64 null relocation code. 6615 6616 -- : BFD_RELOC_AARCH64_NONE 6617 AArch64 null relocation code. 6618 6619 -- : BFD_RELOC_AARCH64_64 6620 -- : BFD_RELOC_AARCH64_32 6621 -- : BFD_RELOC_AARCH64_16 6622 Basic absolute relocations of N bits. These are equivalent to 6623 BFD_RELOC_N and they were added to assist the indexing of the howto 6624 table. 6625 6626 -- : BFD_RELOC_AARCH64_64_PCREL 6627 -- : BFD_RELOC_AARCH64_32_PCREL 6628 -- : BFD_RELOC_AARCH64_16_PCREL 6629 PC-relative relocations. These are equivalent to BFD_RELOC_N_PCREL 6630 and they were added to assist the indexing of the howto table. 6631 6632 -- : BFD_RELOC_AARCH64_MOVW_G0 6633 AArch64 MOV[NZK] instruction with most significant bits 0 to 15 of 6634 an unsigned address/value. 6635 6636 -- : BFD_RELOC_AARCH64_MOVW_G0_NC 6637 AArch64 MOV[NZK] instruction with less significant bits 0 to 15 of 6638 an address/value. No overflow checking. 6639 6640 -- : BFD_RELOC_AARCH64_MOVW_G1 6641 AArch64 MOV[NZK] instruction with most significant bits 16 to 31 6642 of an unsigned address/value. 6643 6644 -- : BFD_RELOC_AARCH64_MOVW_G1_NC 6645 AArch64 MOV[NZK] instruction with less significant bits 16 to 31 6646 of an address/value. No overflow checking. 6647 6648 -- : BFD_RELOC_AARCH64_MOVW_G2 6649 AArch64 MOV[NZK] instruction with most significant bits 32 to 47 6650 of an unsigned address/value. 6651 6652 -- : BFD_RELOC_AARCH64_MOVW_G2_NC 6653 AArch64 MOV[NZK] instruction with less significant bits 32 to 47 6654 of an address/value. No overflow checking. 6655 6656 -- : BFD_RELOC_AARCH64_MOVW_G3 6657 AArch64 MOV[NZK] instruction with most signficant bits 48 to 64 of 6658 a signed or unsigned address/value. 6659 6660 -- : BFD_RELOC_AARCH64_MOVW_G0_S 6661 AArch64 MOV[NZ] instruction with most significant bits 0 to 15 of 6662 a signed value. Changes instruction to MOVZ or MOVN depending on 6663 the value's sign. 6664 6665 -- : BFD_RELOC_AARCH64_MOVW_G1_S 6666 AArch64 MOV[NZ] instruction with most significant bits 16 to 31 of 6667 a signed value. Changes instruction to MOVZ or MOVN depending on 6668 the value's sign. 6669 6670 -- : BFD_RELOC_AARCH64_MOVW_G2_S 6671 AArch64 MOV[NZ] instruction with most significant bits 32 to 47 of 6672 a signed value. Changes instruction to MOVZ or MOVN depending on 6673 the value's sign. 6674 6675 -- : BFD_RELOC_AARCH64_LD_LO19_PCREL 6676 AArch64 Load Literal instruction, holding a 19 bit pc-relative word 6677 offset. The lowest two bits must be zero and are not stored in the 6678 instruction, giving a 21 bit signed byte offset. 6679 6680 -- : BFD_RELOC_AARCH64_ADR_LO21_PCREL 6681 AArch64 ADR instruction, holding a simple 21 bit pc-relative byte 6682 offset. 6683 6684 -- : BFD_RELOC_AARCH64_ADR_HI21_PCREL 6685 AArch64 ADRP instruction, with bits 12 to 32 of a pc-relative page 6686 offset, giving a 4KB aligned page base address. 6687 6688 -- : BFD_RELOC_AARCH64_ADR_HI21_NC_PCREL 6689 AArch64 ADRP instruction, with bits 12 to 32 of a pc-relative page 6690 offset, giving a 4KB aligned page base address, but with no 6691 overflow checking. 6692 6693 -- : BFD_RELOC_AARCH64_ADD_LO12 6694 AArch64 ADD immediate instruction, holding bits 0 to 11 of the 6695 address. Used in conjunction with 6696 BFD_RELOC_AARCH64_ADR_HI21_PCREL. 6697 6698 -- : BFD_RELOC_AARCH64_LDST8_LO12 6699 AArch64 8-bit load/store instruction, holding bits 0 to 11 of the 6700 address. Used in conjunction with 6701 BFD_RELOC_AARCH64_ADR_HI21_PCREL. 6702 6703 -- : BFD_RELOC_AARCH64_TSTBR14 6704 AArch64 14 bit pc-relative test bit and branch. The lowest two 6705 bits must be zero and are not stored in the instruction, giving a 6706 16 bit signed byte offset. 6707 6708 -- : BFD_RELOC_AARCH64_BRANCH19 6709 AArch64 19 bit pc-relative conditional branch and compare & branch. 6710 The lowest two bits must be zero and are not stored in the 6711 instruction, giving a 21 bit signed byte offset. 6712 6713 -- : BFD_RELOC_AARCH64_JUMP26 6714 AArch64 26 bit pc-relative unconditional branch. The lowest two 6715 bits must be zero and are not stored in the instruction, giving a 6716 28 bit signed byte offset. 6717 6718 -- : BFD_RELOC_AARCH64_CALL26 6719 AArch64 26 bit pc-relative unconditional branch and link. The 6720 lowest two bits must be zero and are not stored in the instruction, 6721 giving a 28 bit signed byte offset. 6722 6723 -- : BFD_RELOC_AARCH64_LDST16_LO12 6724 AArch64 16-bit load/store instruction, holding bits 0 to 11 of the 6725 address. Used in conjunction with 6726 BFD_RELOC_AARCH64_ADR_HI21_PCREL. 6727 6728 -- : BFD_RELOC_AARCH64_LDST32_LO12 6729 AArch64 32-bit load/store instruction, holding bits 0 to 11 of the 6730 address. Used in conjunction with 6731 BFD_RELOC_AARCH64_ADR_HI21_PCREL. 6732 6733 -- : BFD_RELOC_AARCH64_LDST64_LO12 6734 AArch64 64-bit load/store instruction, holding bits 0 to 11 of the 6735 address. Used in conjunction with 6736 BFD_RELOC_AARCH64_ADR_HI21_PCREL. 6737 6738 -- : BFD_RELOC_AARCH64_LDST128_LO12 6739 AArch64 128-bit load/store instruction, holding bits 0 to 11 of the 6740 address. Used in conjunction with 6741 BFD_RELOC_AARCH64_ADR_HI21_PCREL. 6742 6743 -- : BFD_RELOC_AARCH64_GOT_LD_PREL19 6744 AArch64 Load Literal instruction, holding a 19 bit PC relative word 6745 offset of the global offset table entry for a symbol. The lowest 6746 two bits must be zero and are not stored in the instruction, 6747 giving a 21 bit signed byte offset. This relocation type requires 6748 signed overflow checking. 6749 6750 -- : BFD_RELOC_AARCH64_ADR_GOT_PAGE 6751 Get to the page base of the global offset table entry for a symbol 6752 as part of an ADRP instruction using a 21 bit PC relative 6753 value.Used in conjunction with BFD_RELOC_AARCH64_LD64_GOT_LO12_NC. 6754 6755 -- : BFD_RELOC_AARCH64_LD64_GOT_LO12_NC 6756 Unsigned 12 bit byte offset for 64 bit load/store from the page of 6757 the GOT entry for this symbol. Used in conjunction with 6758 BFD_RELOC_AARCH64_ADR_GOTPAGE. Valid in LP64 ABI only. 6759 6760 -- : BFD_RELOC_AARCH64_LD32_GOT_LO12_NC 6761 Unsigned 12 bit byte offset for 32 bit load/store from the page of 6762 the GOT entry for this symbol. Used in conjunction with 6763 BFD_RELOC_AARCH64_ADR_GOTPAGE. Valid in ILP32 ABI only. 6764 6765 -- : BFD_RELOC_AARCH64_MOVW_GOTOFF_G0_NC 6766 Unsigned 16 bit byte offset for 64 bit load/store from the GOT 6767 entry for this symbol. Valid in LP64 ABI only. 6768 6769 -- : BFD_RELOC_AARCH64_MOVW_GOTOFF_G1 6770 Unsigned 16 bit byte higher offset for 64 bit load/store from the 6771 GOT entry for this symbol. Valid in LP64 ABI only. 6772 6773 -- : BFD_RELOC_AARCH64_LD64_GOTOFF_LO15 6774 Unsigned 15 bit byte offset for 64 bit load/store from the page of 6775 the GOT entry for this symbol. Valid in LP64 ABI only. 6776 6777 -- : BFD_RELOC_AARCH64_LD32_GOTPAGE_LO14 6778 Scaled 14 bit byte offset to the page base of the global offset 6779 table. 6780 6781 -- : BFD_RELOC_AARCH64_LD64_GOTPAGE_LO15 6782 Scaled 15 bit byte offset to the page base of the global offset 6783 table. 6784 6785 -- : BFD_RELOC_AARCH64_TLSGD_ADR_PAGE21 6786 Get to the page base of the global offset table entry for a symbols 6787 tls_index structure as part of an adrp instruction using a 21 bit 6788 PC relative value. Used in conjunction with 6789 BFD_RELOC_AARCH64_TLSGD_ADD_LO12_NC. 6790 6791 -- : BFD_RELOC_AARCH64_TLSGD_ADR_PREL21 6792 AArch64 TLS General Dynamic 6793 6794 -- : BFD_RELOC_AARCH64_TLSGD_ADD_LO12_NC 6795 Unsigned 12 bit byte offset to global offset table entry for a 6796 symbols tls_index structure. Used in conjunction with 6797 BFD_RELOC_AARCH64_TLSGD_ADR_PAGE21. 6798 6799 -- : BFD_RELOC_AARCH64_TLSGD_MOVW_G0_NC 6800 AArch64 TLS General Dynamic relocation. 6801 6802 -- : BFD_RELOC_AARCH64_TLSGD_MOVW_G1 6803 AArch64 TLS General Dynamic relocation. 6804 6805 -- : BFD_RELOC_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21 6806 AArch64 TLS INITIAL EXEC relocation. 6807 6808 -- : BFD_RELOC_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC 6809 AArch64 TLS INITIAL EXEC relocation. 6810 6811 -- : BFD_RELOC_AARCH64_TLSIE_LD32_GOTTPREL_LO12_NC 6812 AArch64 TLS INITIAL EXEC relocation. 6813 6814 -- : BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_PREL19 6815 AArch64 TLS INITIAL EXEC relocation. 6816 6817 -- : BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC 6818 AArch64 TLS INITIAL EXEC relocation. 6819 6820 -- : BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G1 6821 AArch64 TLS INITIAL EXEC relocation. 6822 6823 -- : BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_HI12 6824 bit[23:12] of byte offset to module TLS base address. 6825 6826 -- : BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12 6827 Unsigned 12 bit byte offset to module TLS base address. 6828 6829 -- : BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12_NC 6830 No overflow check version of 6831 BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12. 6832 6833 -- : BFD_RELOC_AARCH64_TLSLD_ADD_LO12_NC 6834 Unsigned 12 bit byte offset to global offset table entry for a 6835 symbols tls_index structure. Used in conjunction with 6836 BFD_RELOC_AARCH64_TLSLD_ADR_PAGE21. 6837 6838 -- : BFD_RELOC_AARCH64_TLSLD_ADR_PAGE21 6839 GOT entry page address for AArch64 TLS Local Dynamic, used with 6840 ADRP instruction. 6841 6842 -- : BFD_RELOC_AARCH64_TLSLD_ADR_PREL21 6843 GOT entry address for AArch64 TLS Local Dynamic, used with ADR 6844 instruction. 6845 6846 -- : BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12 6847 bit[11:1] of byte offset to module TLS base address, encoded in 6848 ldst instructions. 6849 6850 -- : BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC 6851 Similar as BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12, but no 6852 overflow check. 6853 6854 -- : BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12 6855 bit[11:2] of byte offset to module TLS base address, encoded in 6856 ldst instructions. 6857 6858 -- : BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC 6859 Similar as BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12, but no 6860 overflow check. 6861 6862 -- : BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12 6863 bit[11:3] of byte offset to module TLS base address, encoded in 6864 ldst instructions. 6865 6866 -- : BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC 6867 Similar as BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12, but no 6868 overflow check. 6869 6870 -- : BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12 6871 bit[11:0] of byte offset to module TLS base address, encoded in 6872 ldst instructions. 6873 6874 -- : BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC 6875 Similar as BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12, but no 6876 overflow check. 6877 6878 -- : BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0 6879 bit[15:0] of byte offset to module TLS base address. 6880 6881 -- : BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0_NC 6882 No overflow check version of BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0 6883 6884 -- : BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1 6885 bit[31:16] of byte offset to module TLS base address. 6886 6887 -- : BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1_NC 6888 No overflow check version of BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1 6889 6890 -- : BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G2 6891 bit[47:32] of byte offset to module TLS base address. 6892 6893 -- : BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G2 6894 AArch64 TLS LOCAL EXEC relocation. 6895 6896 -- : BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1 6897 AArch64 TLS LOCAL EXEC relocation. 6898 6899 -- : BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1_NC 6900 AArch64 TLS LOCAL EXEC relocation. 6901 6902 -- : BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0 6903 AArch64 TLS LOCAL EXEC relocation. 6904 6905 -- : BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0_NC 6906 AArch64 TLS LOCAL EXEC relocation. 6907 6908 -- : BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_HI12 6909 AArch64 TLS LOCAL EXEC relocation. 6910 6911 -- : BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12 6912 AArch64 TLS LOCAL EXEC relocation. 6913 6914 -- : BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12_NC 6915 AArch64 TLS LOCAL EXEC relocation. 6916 6917 -- : BFD_RELOC_AARCH64_TLSDESC_LD_PREL19 6918 AArch64 TLS DESC relocation. 6919 6920 -- : BFD_RELOC_AARCH64_TLSDESC_ADR_PREL21 6921 AArch64 TLS DESC relocation. 6922 6923 -- : BFD_RELOC_AARCH64_TLSDESC_ADR_PAGE21 6924 AArch64 TLS DESC relocation. 6925 6926 -- : BFD_RELOC_AARCH64_TLSDESC_LD64_LO12_NC 6927 AArch64 TLS DESC relocation. 6928 6929 -- : BFD_RELOC_AARCH64_TLSDESC_LD32_LO12_NC 6930 AArch64 TLS DESC relocation. 6931 6932 -- : BFD_RELOC_AARCH64_TLSDESC_ADD_LO12_NC 6933 AArch64 TLS DESC relocation. 6934 6935 -- : BFD_RELOC_AARCH64_TLSDESC_OFF_G1 6936 AArch64 TLS DESC relocation. 6937 6938 -- : BFD_RELOC_AARCH64_TLSDESC_OFF_G0_NC 6939 AArch64 TLS DESC relocation. 6940 6941 -- : BFD_RELOC_AARCH64_TLSDESC_LDR 6942 AArch64 TLS DESC relocation. 6943 6944 -- : BFD_RELOC_AARCH64_TLSDESC_ADD 6945 AArch64 TLS DESC relocation. 6946 6947 -- : BFD_RELOC_AARCH64_TLSDESC_CALL 6948 AArch64 TLS DESC relocation. 6949 6950 -- : BFD_RELOC_AARCH64_COPY 6951 AArch64 TLS relocation. 6952 6953 -- : BFD_RELOC_AARCH64_GLOB_DAT 6954 AArch64 TLS relocation. 6955 6956 -- : BFD_RELOC_AARCH64_JUMP_SLOT 6957 AArch64 TLS relocation. 6958 6959 -- : BFD_RELOC_AARCH64_RELATIVE 6960 AArch64 TLS relocation. 6961 6962 -- : BFD_RELOC_AARCH64_TLS_DTPMOD 6963 AArch64 TLS relocation. 6964 6965 -- : BFD_RELOC_AARCH64_TLS_DTPREL 6966 AArch64 TLS relocation. 6967 6968 -- : BFD_RELOC_AARCH64_TLS_TPREL 6969 AArch64 TLS relocation. 6970 6971 -- : BFD_RELOC_AARCH64_TLSDESC 6972 AArch64 TLS relocation. 6973 6974 -- : BFD_RELOC_AARCH64_IRELATIVE 6975 AArch64 support for STT_GNU_IFUNC. 6976 6977 -- : BFD_RELOC_AARCH64_RELOC_END 6978 AArch64 pseudo relocation code to mark the end of the AArch64 6979 relocation enumerators that have direct mapping to ELF reloc codes. 6980 There are a few more enumerators after this one; those are mainly 6981 used by the AArch64 assembler for the internal fixup or to select 6982 one of the above enumerators. 6983 6984 -- : BFD_RELOC_AARCH64_GAS_INTERNAL_FIXUP 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_LDST_LO12 6989 AArch64 unspecified load/store instruction, holding bits 0 to 11 6990 of the address. Used in conjunction with 6991 BFD_RELOC_AARCH64_ADR_HI21_PCREL. 6992 6993 -- : BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12 6994 AArch64 pseudo relocation code for TLS local dynamic mode. It's 6995 to be used internally by the AArch64 assembler and not (currently) 6996 written to any object files. 6997 6998 -- : BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12_NC 6999 Similar as BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12, but no 7000 overflow check. 7001 7002 -- : BFD_RELOC_AARCH64_LD_GOT_LO12_NC 7003 AArch64 pseudo relocation code to be used internally by the AArch64 7004 assembler and not (currently) written to any object files. 7005 7006 -- : BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_LO12_NC 7007 AArch64 pseudo relocation code to be used internally by the AArch64 7008 assembler and not (currently) written to any object files. 7009 7010 -- : BFD_RELOC_AARCH64_TLSDESC_LD_LO12_NC 7011 AArch64 pseudo relocation code to be used internally by the AArch64 7012 assembler and not (currently) written to any object files. 7013 7014 -- : BFD_RELOC_TILEPRO_COPY 7015 -- : BFD_RELOC_TILEPRO_GLOB_DAT 7016 -- : BFD_RELOC_TILEPRO_JMP_SLOT 7017 -- : BFD_RELOC_TILEPRO_RELATIVE 7018 -- : BFD_RELOC_TILEPRO_BROFF_X1 7019 -- : BFD_RELOC_TILEPRO_JOFFLONG_X1 7020 -- : BFD_RELOC_TILEPRO_JOFFLONG_X1_PLT 7021 -- : BFD_RELOC_TILEPRO_IMM8_X0 7022 -- : BFD_RELOC_TILEPRO_IMM8_Y0 7023 -- : BFD_RELOC_TILEPRO_IMM8_X1 7024 -- : BFD_RELOC_TILEPRO_IMM8_Y1 7025 -- : BFD_RELOC_TILEPRO_DEST_IMM8_X1 7026 -- : BFD_RELOC_TILEPRO_MT_IMM15_X1 7027 -- : BFD_RELOC_TILEPRO_MF_IMM15_X1 7028 -- : BFD_RELOC_TILEPRO_IMM16_X0 7029 -- : BFD_RELOC_TILEPRO_IMM16_X1 7030 -- : BFD_RELOC_TILEPRO_IMM16_X0_LO 7031 -- : BFD_RELOC_TILEPRO_IMM16_X1_LO 7032 -- : BFD_RELOC_TILEPRO_IMM16_X0_HI 7033 -- : BFD_RELOC_TILEPRO_IMM16_X1_HI 7034 -- : BFD_RELOC_TILEPRO_IMM16_X0_HA 7035 -- : BFD_RELOC_TILEPRO_IMM16_X1_HA 7036 -- : BFD_RELOC_TILEPRO_IMM16_X0_PCREL 7037 -- : BFD_RELOC_TILEPRO_IMM16_X1_PCREL 7038 -- : BFD_RELOC_TILEPRO_IMM16_X0_LO_PCREL 7039 -- : BFD_RELOC_TILEPRO_IMM16_X1_LO_PCREL 7040 -- : BFD_RELOC_TILEPRO_IMM16_X0_HI_PCREL 7041 -- : BFD_RELOC_TILEPRO_IMM16_X1_HI_PCREL 7042 -- : BFD_RELOC_TILEPRO_IMM16_X0_HA_PCREL 7043 -- : BFD_RELOC_TILEPRO_IMM16_X1_HA_PCREL 7044 -- : BFD_RELOC_TILEPRO_IMM16_X0_GOT 7045 -- : BFD_RELOC_TILEPRO_IMM16_X1_GOT 7046 -- : BFD_RELOC_TILEPRO_IMM16_X0_GOT_LO 7047 -- : BFD_RELOC_TILEPRO_IMM16_X1_GOT_LO 7048 -- : BFD_RELOC_TILEPRO_IMM16_X0_GOT_HI 7049 -- : BFD_RELOC_TILEPRO_IMM16_X1_GOT_HI 7050 -- : BFD_RELOC_TILEPRO_IMM16_X0_GOT_HA 7051 -- : BFD_RELOC_TILEPRO_IMM16_X1_GOT_HA 7052 -- : BFD_RELOC_TILEPRO_MMSTART_X0 7053 -- : BFD_RELOC_TILEPRO_MMEND_X0 7054 -- : BFD_RELOC_TILEPRO_MMSTART_X1 7055 -- : BFD_RELOC_TILEPRO_MMEND_X1 7056 -- : BFD_RELOC_TILEPRO_SHAMT_X0 7057 -- : BFD_RELOC_TILEPRO_SHAMT_X1 7058 -- : BFD_RELOC_TILEPRO_SHAMT_Y0 7059 -- : BFD_RELOC_TILEPRO_SHAMT_Y1 7060 -- : BFD_RELOC_TILEPRO_TLS_GD_CALL 7061 -- : BFD_RELOC_TILEPRO_IMM8_X0_TLS_GD_ADD 7062 -- : BFD_RELOC_TILEPRO_IMM8_X1_TLS_GD_ADD 7063 -- : BFD_RELOC_TILEPRO_IMM8_Y0_TLS_GD_ADD 7064 -- : BFD_RELOC_TILEPRO_IMM8_Y1_TLS_GD_ADD 7065 -- : BFD_RELOC_TILEPRO_TLS_IE_LOAD 7066 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD 7067 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD 7068 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_LO 7069 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_LO 7070 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HI 7071 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HI 7072 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HA 7073 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HA 7074 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE 7075 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE 7076 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_LO 7077 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_LO 7078 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HI 7079 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HI 7080 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HA 7081 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HA 7082 -- : BFD_RELOC_TILEPRO_TLS_DTPMOD32 7083 -- : BFD_RELOC_TILEPRO_TLS_DTPOFF32 7084 -- : BFD_RELOC_TILEPRO_TLS_TPOFF32 7085 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE 7086 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE 7087 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_LO 7088 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_LO 7089 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HI 7090 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HI 7091 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HA 7092 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HA 7093 Tilera TILEPro Relocations. 7094 7095 -- : BFD_RELOC_TILEGX_HW0 7096 -- : BFD_RELOC_TILEGX_HW1 7097 -- : BFD_RELOC_TILEGX_HW2 7098 -- : BFD_RELOC_TILEGX_HW3 7099 -- : BFD_RELOC_TILEGX_HW0_LAST 7100 -- : BFD_RELOC_TILEGX_HW1_LAST 7101 -- : BFD_RELOC_TILEGX_HW2_LAST 7102 -- : BFD_RELOC_TILEGX_COPY 7103 -- : BFD_RELOC_TILEGX_GLOB_DAT 7104 -- : BFD_RELOC_TILEGX_JMP_SLOT 7105 -- : BFD_RELOC_TILEGX_RELATIVE 7106 -- : BFD_RELOC_TILEGX_BROFF_X1 7107 -- : BFD_RELOC_TILEGX_JUMPOFF_X1 7108 -- : BFD_RELOC_TILEGX_JUMPOFF_X1_PLT 7109 -- : BFD_RELOC_TILEGX_IMM8_X0 7110 -- : BFD_RELOC_TILEGX_IMM8_Y0 7111 -- : BFD_RELOC_TILEGX_IMM8_X1 7112 -- : BFD_RELOC_TILEGX_IMM8_Y1 7113 -- : BFD_RELOC_TILEGX_DEST_IMM8_X1 7114 -- : BFD_RELOC_TILEGX_MT_IMM14_X1 7115 -- : BFD_RELOC_TILEGX_MF_IMM14_X1 7116 -- : BFD_RELOC_TILEGX_MMSTART_X0 7117 -- : BFD_RELOC_TILEGX_MMEND_X0 7118 -- : BFD_RELOC_TILEGX_SHAMT_X0 7119 -- : BFD_RELOC_TILEGX_SHAMT_X1 7120 -- : BFD_RELOC_TILEGX_SHAMT_Y0 7121 -- : BFD_RELOC_TILEGX_SHAMT_Y1 7122 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0 7123 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0 7124 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1 7125 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1 7126 -- : BFD_RELOC_TILEGX_IMM16_X0_HW2 7127 -- : BFD_RELOC_TILEGX_IMM16_X1_HW2 7128 -- : BFD_RELOC_TILEGX_IMM16_X0_HW3 7129 -- : BFD_RELOC_TILEGX_IMM16_X1_HW3 7130 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST 7131 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST 7132 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST 7133 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST 7134 -- : BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST 7135 -- : BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST 7136 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_PCREL 7137 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_PCREL 7138 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_PCREL 7139 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_PCREL 7140 -- : BFD_RELOC_TILEGX_IMM16_X0_HW2_PCREL 7141 -- : BFD_RELOC_TILEGX_IMM16_X1_HW2_PCREL 7142 -- : BFD_RELOC_TILEGX_IMM16_X0_HW3_PCREL 7143 -- : BFD_RELOC_TILEGX_IMM16_X1_HW3_PCREL 7144 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_PCREL 7145 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_PCREL 7146 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_PCREL 7147 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_PCREL 7148 -- : BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_PCREL 7149 -- : BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PCREL 7150 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_GOT 7151 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_GOT 7152 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_PLT_PCREL 7153 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_PLT_PCREL 7154 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_PLT_PCREL 7155 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_PLT_PCREL 7156 -- : BFD_RELOC_TILEGX_IMM16_X0_HW2_PLT_PCREL 7157 -- : BFD_RELOC_TILEGX_IMM16_X1_HW2_PLT_PCREL 7158 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_GOT 7159 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_GOT 7160 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_GOT 7161 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_GOT 7162 -- : BFD_RELOC_TILEGX_IMM16_X0_HW3_PLT_PCREL 7163 -- : BFD_RELOC_TILEGX_IMM16_X1_HW3_PLT_PCREL 7164 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_GD 7165 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_GD 7166 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_LE 7167 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_LE 7168 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_LE 7169 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_LE 7170 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_LE 7171 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_LE 7172 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_GD 7173 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_GD 7174 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_GD 7175 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_GD 7176 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_IE 7177 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_IE 7178 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_PLT_PCREL 7179 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_PLT_PCREL 7180 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_PLT_PCREL 7181 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_PLT_PCREL 7182 -- : BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_PLT_PCREL 7183 -- : BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PLT_PCREL 7184 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_IE 7185 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_IE 7186 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_IE 7187 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_IE 7188 -- : BFD_RELOC_TILEGX_TLS_DTPMOD64 7189 -- : BFD_RELOC_TILEGX_TLS_DTPOFF64 7190 -- : BFD_RELOC_TILEGX_TLS_TPOFF64 7191 -- : BFD_RELOC_TILEGX_TLS_DTPMOD32 7192 -- : BFD_RELOC_TILEGX_TLS_DTPOFF32 7193 -- : BFD_RELOC_TILEGX_TLS_TPOFF32 7194 -- : BFD_RELOC_TILEGX_TLS_GD_CALL 7195 -- : BFD_RELOC_TILEGX_IMM8_X0_TLS_GD_ADD 7196 -- : BFD_RELOC_TILEGX_IMM8_X1_TLS_GD_ADD 7197 -- : BFD_RELOC_TILEGX_IMM8_Y0_TLS_GD_ADD 7198 -- : BFD_RELOC_TILEGX_IMM8_Y1_TLS_GD_ADD 7199 -- : BFD_RELOC_TILEGX_TLS_IE_LOAD 7200 -- : BFD_RELOC_TILEGX_IMM8_X0_TLS_ADD 7201 -- : BFD_RELOC_TILEGX_IMM8_X1_TLS_ADD 7202 -- : BFD_RELOC_TILEGX_IMM8_Y0_TLS_ADD 7203 -- : BFD_RELOC_TILEGX_IMM8_Y1_TLS_ADD 7204 Tilera TILE-Gx Relocations. 7205 7206 -- : BFD_RELOC_EPIPHANY_SIMM8 7207 Adapteva EPIPHANY - 8 bit signed pc-relative displacement 7208 7209 -- : BFD_RELOC_EPIPHANY_SIMM24 7210 Adapteva EPIPHANY - 24 bit signed pc-relative displacement 7211 7212 -- : BFD_RELOC_EPIPHANY_HIGH 7213 Adapteva EPIPHANY - 16 most-significant bits of absolute address 7214 7215 -- : BFD_RELOC_EPIPHANY_LOW 7216 Adapteva EPIPHANY - 16 least-significant bits of absolute address 7217 7218 -- : BFD_RELOC_EPIPHANY_SIMM11 7219 Adapteva EPIPHANY - 11 bit signed number - add/sub immediate 7220 7221 -- : BFD_RELOC_EPIPHANY_IMM11 7222 Adapteva EPIPHANY - 11 bit sign-magnitude number (ld/st 7223 displacement) 7224 7225 -- : BFD_RELOC_EPIPHANY_IMM8 7226 Adapteva EPIPHANY - 8 bit immediate for 16 bit mov instruction. 7227 7228 -- : BFD_RELOC_VISIUM_HI16 7229 -- : BFD_RELOC_VISIUM_LO16 7230 -- : BFD_RELOC_VISIUM_IM16 7231 -- : BFD_RELOC_VISIUM_REL16 7232 -- : BFD_RELOC_VISIUM_HI16_PCREL 7233 -- : BFD_RELOC_VISIUM_LO16_PCREL 7234 -- : BFD_RELOC_VISIUM_IM16_PCREL 7235 Visium Relocations. 7236 7237 7238 typedef enum bfd_reloc_code_real bfd_reloc_code_real_type; 7239 72402.10.2.2 `bfd_reloc_type_lookup' 7241................................ 7242 7243*Synopsis* 7244 reloc_howto_type *bfd_reloc_type_lookup 7245 (bfd *abfd, bfd_reloc_code_real_type code); 7246 reloc_howto_type *bfd_reloc_name_lookup 7247 (bfd *abfd, const char *reloc_name); 7248 *Description* 7249Return a pointer to a howto structure which, when invoked, will perform 7250the relocation CODE on data from the architecture noted. 7251 72522.10.2.3 `bfd_default_reloc_type_lookup' 7253........................................ 7254 7255*Synopsis* 7256 reloc_howto_type *bfd_default_reloc_type_lookup 7257 (bfd *abfd, bfd_reloc_code_real_type code); 7258 *Description* 7259Provides a default relocation lookup routine for any architecture. 7260 72612.10.2.4 `bfd_get_reloc_code_name' 7262.................................. 7263 7264*Synopsis* 7265 const char *bfd_get_reloc_code_name (bfd_reloc_code_real_type code); 7266 *Description* 7267Provides a printable name for the supplied relocation code. Useful 7268mainly for printing error messages. 7269 72702.10.2.5 `bfd_generic_relax_section' 7271.................................... 7272 7273*Synopsis* 7274 bfd_boolean bfd_generic_relax_section 7275 (bfd *abfd, 7276 asection *section, 7277 struct bfd_link_info *, 7278 bfd_boolean *); 7279 *Description* 7280Provides default handling for relaxing for back ends which don't do 7281relaxing. 7282 72832.10.2.6 `bfd_generic_gc_sections' 7284.................................. 7285 7286*Synopsis* 7287 bfd_boolean bfd_generic_gc_sections 7288 (bfd *, struct bfd_link_info *); 7289 *Description* 7290Provides default handling for relaxing for back ends which don't do 7291section gc - i.e., does nothing. 7292 72932.10.2.7 `bfd_generic_lookup_section_flags' 7294........................................... 7295 7296*Synopsis* 7297 bfd_boolean bfd_generic_lookup_section_flags 7298 (struct bfd_link_info *, struct flag_info *, asection *); 7299 *Description* 7300Provides default handling for section flags lookup - i.e., does nothing. 7301Returns FALSE if the section should be omitted, otherwise TRUE. 7302 73032.10.2.8 `bfd_generic_merge_sections' 7304..................................... 7305 7306*Synopsis* 7307 bfd_boolean bfd_generic_merge_sections 7308 (bfd *, struct bfd_link_info *); 7309 *Description* 7310Provides default handling for SEC_MERGE section merging for back ends 7311which don't have SEC_MERGE support - i.e., does nothing. 7312 73132.10.2.9 `bfd_generic_get_relocated_section_contents' 7314..................................................... 7315 7316*Synopsis* 7317 bfd_byte *bfd_generic_get_relocated_section_contents 7318 (bfd *abfd, 7319 struct bfd_link_info *link_info, 7320 struct bfd_link_order *link_order, 7321 bfd_byte *data, 7322 bfd_boolean relocatable, 7323 asymbol **symbols); 7324 *Description* 7325Provides default handling of relocation effort for back ends which 7326can't be bothered to do it efficiently. 7327 7328 7329File: bfd.info, Node: Core Files, Next: Targets, Prev: Relocations, Up: BFD front end 7330 73312.11 Core files 7332=============== 7333 73342.11.1 Core file functions 7335-------------------------- 7336 7337*Description* 7338These are functions pertaining to core files. 7339 73402.11.1.1 `bfd_core_file_failing_command' 7341........................................ 7342 7343*Synopsis* 7344 const char *bfd_core_file_failing_command (bfd *abfd); 7345 *Description* 7346Return a read-only string explaining which program was running when it 7347failed and produced the core file ABFD. 7348 73492.11.1.2 `bfd_core_file_failing_signal' 7350....................................... 7351 7352*Synopsis* 7353 int bfd_core_file_failing_signal (bfd *abfd); 7354 *Description* 7355Returns the signal number which caused the core dump which generated 7356the file the BFD ABFD is attached to. 7357 73582.11.1.3 `bfd_core_file_pid' 7359............................ 7360 7361*Synopsis* 7362 int bfd_core_file_pid (bfd *abfd); 7363 *Description* 7364Returns the PID of the process the core dump the BFD ABFD is attached 7365to was generated from. 7366 73672.11.1.4 `core_file_matches_executable_p' 7368......................................... 7369 7370*Synopsis* 7371 bfd_boolean core_file_matches_executable_p 7372 (bfd *core_bfd, bfd *exec_bfd); 7373 *Description* 7374Return `TRUE' if the core file attached to CORE_BFD was generated by a 7375run of the executable file attached to EXEC_BFD, `FALSE' otherwise. 7376 73772.11.1.5 `generic_core_file_matches_executable_p' 7378................................................. 7379 7380*Synopsis* 7381 bfd_boolean generic_core_file_matches_executable_p 7382 (bfd *core_bfd, bfd *exec_bfd); 7383 *Description* 7384Return TRUE if the core file attached to CORE_BFD was generated by a 7385run of the executable file attached to EXEC_BFD. The match is based on 7386executable basenames only. 7387 7388 Note: When not able to determine the core file failing command or 7389the executable name, we still return TRUE even though we're not sure 7390that core file and executable match. This is to avoid generating a 7391false warning in situations where we really don't know whether they 7392match or not. 7393 7394 7395File: bfd.info, Node: Targets, Next: Architectures, Prev: Core Files, Up: BFD front end 7396 73972.12 Targets 7398============ 7399 7400*Description* 7401Each port of BFD to a different machine requires the creation of a 7402target back end. All the back end provides to the root part of BFD is a 7403structure containing pointers to functions which perform certain low 7404level operations on files. BFD translates the applications's requests 7405through a pointer into calls to the back end routines. 7406 7407 When a file is opened with `bfd_openr', its format and target are 7408unknown. BFD uses various mechanisms to determine how to interpret the 7409file. The operations performed are: 7410 7411 * Create a BFD by calling the internal routine `_bfd_new_bfd', then 7412 call `bfd_find_target' with the target string supplied to 7413 `bfd_openr' and the new BFD pointer. 7414 7415 * If a null target string was provided to `bfd_find_target', look up 7416 the environment variable `GNUTARGET' and use that as the target 7417 string. 7418 7419 * If the target string is still `NULL', or the target string is 7420 `default', then use the first item in the target vector as the 7421 target type, and set `target_defaulted' in the BFD to cause 7422 `bfd_check_format' to loop through all the targets. *Note 7423 bfd_target::. *Note Formats::. 7424 7425 * Otherwise, inspect the elements in the target vector one by one, 7426 until a match on target name is found. When found, use it. 7427 7428 * Otherwise return the error `bfd_error_invalid_target' to 7429 `bfd_openr'. 7430 7431 * `bfd_openr' attempts to open the file using `bfd_open_file', and 7432 returns the BFD. 7433 Once the BFD has been opened and the target selected, the file 7434format may be determined. This is done by calling `bfd_check_format' on 7435the BFD with a suggested format. If `target_defaulted' has been set, 7436each possible target type is tried to see if it recognizes the 7437specified format. `bfd_check_format' returns `TRUE' when the caller 7438guesses right. 7439 7440* Menu: 7441 7442* bfd_target:: 7443 7444 7445File: bfd.info, Node: bfd_target, Prev: Targets, Up: Targets 7446 74472.12.1 bfd_target 7448----------------- 7449 7450*Description* 7451This structure contains everything that BFD knows about a target. It 7452includes things like its byte order, name, and which routines to call 7453to do various operations. 7454 7455 Every BFD points to a target structure with its `xvec' member. 7456 7457 The macros below are used to dispatch to functions through the 7458`bfd_target' vector. They are used in a number of macros further down 7459in `bfd.h', and are also used when calling various routines by hand 7460inside the BFD implementation. The ARGLIST argument must be 7461parenthesized; it contains all the arguments to the called function. 7462 7463 They make the documentation (more) unpleasant to read, so if someone 7464wants to fix this and not break the above, please do. 7465 #define BFD_SEND(bfd, message, arglist) \ 7466 ((*((bfd)->xvec->message)) arglist) 7467 7468 #ifdef DEBUG_BFD_SEND 7469 #undef BFD_SEND 7470 #define BFD_SEND(bfd, message, arglist) \ 7471 (((bfd) && (bfd)->xvec && (bfd)->xvec->message) ? \ 7472 ((*((bfd)->xvec->message)) arglist) : \ 7473 (bfd_assert (__FILE__,__LINE__), NULL)) 7474 #endif 7475 For operations which index on the BFD format: 7476 #define BFD_SEND_FMT(bfd, message, arglist) \ 7477 (((bfd)->xvec->message[(int) ((bfd)->format)]) arglist) 7478 7479 #ifdef DEBUG_BFD_SEND 7480 #undef BFD_SEND_FMT 7481 #define BFD_SEND_FMT(bfd, message, arglist) \ 7482 (((bfd) && (bfd)->xvec && (bfd)->xvec->message) ? \ 7483 (((bfd)->xvec->message[(int) ((bfd)->format)]) arglist) : \ 7484 (bfd_assert (__FILE__,__LINE__), NULL)) 7485 #endif 7486 This is the structure which defines the type of BFD this is. The 7487`xvec' member of the struct `bfd' itself points here. Each module that 7488implements access to a different target under BFD, defines one of these. 7489 7490 FIXME, these names should be rationalised with the names of the 7491entry points which call them. Too bad we can't have one macro to define 7492them both! 7493 enum bfd_flavour 7494 { 7495 /* N.B. Update bfd_flavour_name if you change this. */ 7496 bfd_target_unknown_flavour, 7497 bfd_target_aout_flavour, 7498 bfd_target_coff_flavour, 7499 bfd_target_ecoff_flavour, 7500 bfd_target_xcoff_flavour, 7501 bfd_target_elf_flavour, 7502 bfd_target_ieee_flavour, 7503 bfd_target_nlm_flavour, 7504 bfd_target_oasys_flavour, 7505 bfd_target_tekhex_flavour, 7506 bfd_target_srec_flavour, 7507 bfd_target_verilog_flavour, 7508 bfd_target_ihex_flavour, 7509 bfd_target_som_flavour, 7510 bfd_target_os9k_flavour, 7511 bfd_target_versados_flavour, 7512 bfd_target_msdos_flavour, 7513 bfd_target_ovax_flavour, 7514 bfd_target_evax_flavour, 7515 bfd_target_mmo_flavour, 7516 bfd_target_mach_o_flavour, 7517 bfd_target_pef_flavour, 7518 bfd_target_pef_xlib_flavour, 7519 bfd_target_sym_flavour 7520 }; 7521 7522 enum bfd_endian { BFD_ENDIAN_BIG, BFD_ENDIAN_LITTLE, BFD_ENDIAN_UNKNOWN }; 7523 7524 /* Forward declaration. */ 7525 typedef struct bfd_link_info _bfd_link_info; 7526 7527 /* Forward declaration. */ 7528 typedef struct flag_info flag_info; 7529 7530 typedef struct bfd_target 7531 { 7532 /* Identifies the kind of target, e.g., SunOS4, Ultrix, etc. */ 7533 char *name; 7534 7535 /* The "flavour" of a back end is a general indication about 7536 the contents of a file. */ 7537 enum bfd_flavour flavour; 7538 7539 /* The order of bytes within the data area of a file. */ 7540 enum bfd_endian byteorder; 7541 7542 /* The order of bytes within the header parts of a file. */ 7543 enum bfd_endian header_byteorder; 7544 7545 /* A mask of all the flags which an executable may have set - 7546 from the set `BFD_NO_FLAGS', `HAS_RELOC', ...`D_PAGED'. */ 7547 flagword object_flags; 7548 7549 /* A mask of all the flags which a section may have set - from 7550 the set `SEC_NO_FLAGS', `SEC_ALLOC', ...`SET_NEVER_LOAD'. */ 7551 flagword section_flags; 7552 7553 /* The character normally found at the front of a symbol. 7554 (if any), perhaps `_'. */ 7555 char symbol_leading_char; 7556 7557 /* The pad character for file names within an archive header. */ 7558 char ar_pad_char; 7559 7560 /* The maximum number of characters in an archive header. */ 7561 unsigned char ar_max_namelen; 7562 7563 /* How well this target matches, used to select between various 7564 possible targets when more than one target matches. */ 7565 unsigned char match_priority; 7566 7567 /* Entries for byte swapping for data. These are different from the 7568 other entry points, since they don't take a BFD as the first argument. 7569 Certain other handlers could do the same. */ 7570 bfd_uint64_t (*bfd_getx64) (const void *); 7571 bfd_int64_t (*bfd_getx_signed_64) (const void *); 7572 void (*bfd_putx64) (bfd_uint64_t, void *); 7573 bfd_vma (*bfd_getx32) (const void *); 7574 bfd_signed_vma (*bfd_getx_signed_32) (const void *); 7575 void (*bfd_putx32) (bfd_vma, void *); 7576 bfd_vma (*bfd_getx16) (const void *); 7577 bfd_signed_vma (*bfd_getx_signed_16) (const void *); 7578 void (*bfd_putx16) (bfd_vma, void *); 7579 7580 /* Byte swapping for the headers. */ 7581 bfd_uint64_t (*bfd_h_getx64) (const void *); 7582 bfd_int64_t (*bfd_h_getx_signed_64) (const void *); 7583 void (*bfd_h_putx64) (bfd_uint64_t, void *); 7584 bfd_vma (*bfd_h_getx32) (const void *); 7585 bfd_signed_vma (*bfd_h_getx_signed_32) (const void *); 7586 void (*bfd_h_putx32) (bfd_vma, void *); 7587 bfd_vma (*bfd_h_getx16) (const void *); 7588 bfd_signed_vma (*bfd_h_getx_signed_16) (const void *); 7589 void (*bfd_h_putx16) (bfd_vma, void *); 7590 7591 /* Format dependent routines: these are vectors of entry points 7592 within the target vector structure, one for each format to check. */ 7593 7594 /* Check the format of a file being read. Return a `bfd_target *' or zero. */ 7595 const struct bfd_target *(*_bfd_check_format[bfd_type_end]) (bfd *); 7596 7597 /* Set the format of a file being written. */ 7598 bfd_boolean (*_bfd_set_format[bfd_type_end]) (bfd *); 7599 7600 /* Write cached information into a file being written, at `bfd_close'. */ 7601 bfd_boolean (*_bfd_write_contents[bfd_type_end]) (bfd *); 7602 The general target vector. These vectors are initialized using the 7603BFD_JUMP_TABLE macros. 7604 7605 /* Generic entry points. */ 7606 #define BFD_JUMP_TABLE_GENERIC(NAME) \ 7607 NAME##_close_and_cleanup, \ 7608 NAME##_bfd_free_cached_info, \ 7609 NAME##_new_section_hook, \ 7610 NAME##_get_section_contents, \ 7611 NAME##_get_section_contents_in_window 7612 7613 /* Called when the BFD is being closed to do any necessary cleanup. */ 7614 bfd_boolean (*_close_and_cleanup) (bfd *); 7615 /* Ask the BFD to free all cached information. */ 7616 bfd_boolean (*_bfd_free_cached_info) (bfd *); 7617 /* Called when a new section is created. */ 7618 bfd_boolean (*_new_section_hook) (bfd *, sec_ptr); 7619 /* Read the contents of a section. */ 7620 bfd_boolean (*_bfd_get_section_contents) 7621 (bfd *, sec_ptr, void *, file_ptr, bfd_size_type); 7622 bfd_boolean (*_bfd_get_section_contents_in_window) 7623 (bfd *, sec_ptr, bfd_window *, file_ptr, bfd_size_type); 7624 7625 /* Entry points to copy private data. */ 7626 #define BFD_JUMP_TABLE_COPY(NAME) \ 7627 NAME##_bfd_copy_private_bfd_data, \ 7628 NAME##_bfd_merge_private_bfd_data, \ 7629 _bfd_generic_init_private_section_data, \ 7630 NAME##_bfd_copy_private_section_data, \ 7631 NAME##_bfd_copy_private_symbol_data, \ 7632 NAME##_bfd_copy_private_header_data, \ 7633 NAME##_bfd_set_private_flags, \ 7634 NAME##_bfd_print_private_bfd_data 7635 7636 /* Called to copy BFD general private data from one object file 7637 to another. */ 7638 bfd_boolean (*_bfd_copy_private_bfd_data) (bfd *, bfd *); 7639 /* Called to merge BFD general private data from one object file 7640 to a common output file when linking. */ 7641 bfd_boolean (*_bfd_merge_private_bfd_data) (bfd *, struct bfd_link_info *); 7642 /* Called to initialize BFD private section data from one object file 7643 to another. */ 7644 #define bfd_init_private_section_data(ibfd, isec, obfd, osec, link_info) \ 7645 BFD_SEND (obfd, _bfd_init_private_section_data, (ibfd, isec, obfd, osec, link_info)) 7646 bfd_boolean (*_bfd_init_private_section_data) 7647 (bfd *, sec_ptr, bfd *, sec_ptr, struct bfd_link_info *); 7648 /* Called to copy BFD private section data from one object file 7649 to another. */ 7650 bfd_boolean (*_bfd_copy_private_section_data) 7651 (bfd *, sec_ptr, bfd *, sec_ptr); 7652 /* Called to copy BFD private symbol data from one symbol 7653 to another. */ 7654 bfd_boolean (*_bfd_copy_private_symbol_data) 7655 (bfd *, asymbol *, bfd *, asymbol *); 7656 /* Called to copy BFD private header data from one object file 7657 to another. */ 7658 bfd_boolean (*_bfd_copy_private_header_data) 7659 (bfd *, bfd *); 7660 /* Called to set private backend flags. */ 7661 bfd_boolean (*_bfd_set_private_flags) (bfd *, flagword); 7662 7663 /* Called to print private BFD data. */ 7664 bfd_boolean (*_bfd_print_private_bfd_data) (bfd *, void *); 7665 7666 /* Core file entry points. */ 7667 #define BFD_JUMP_TABLE_CORE(NAME) \ 7668 NAME##_core_file_failing_command, \ 7669 NAME##_core_file_failing_signal, \ 7670 NAME##_core_file_matches_executable_p, \ 7671 NAME##_core_file_pid 7672 7673 char * (*_core_file_failing_command) (bfd *); 7674 int (*_core_file_failing_signal) (bfd *); 7675 bfd_boolean (*_core_file_matches_executable_p) (bfd *, bfd *); 7676 int (*_core_file_pid) (bfd *); 7677 7678 /* Archive entry points. */ 7679 #define BFD_JUMP_TABLE_ARCHIVE(NAME) \ 7680 NAME##_slurp_armap, \ 7681 NAME##_slurp_extended_name_table, \ 7682 NAME##_construct_extended_name_table, \ 7683 NAME##_truncate_arname, \ 7684 NAME##_write_armap, \ 7685 NAME##_read_ar_hdr, \ 7686 NAME##_write_ar_hdr, \ 7687 NAME##_openr_next_archived_file, \ 7688 NAME##_get_elt_at_index, \ 7689 NAME##_generic_stat_arch_elt, \ 7690 NAME##_update_armap_timestamp 7691 7692 bfd_boolean (*_bfd_slurp_armap) (bfd *); 7693 bfd_boolean (*_bfd_slurp_extended_name_table) (bfd *); 7694 bfd_boolean (*_bfd_construct_extended_name_table) 7695 (bfd *, char **, bfd_size_type *, const char **); 7696 void (*_bfd_truncate_arname) (bfd *, const char *, char *); 7697 bfd_boolean (*write_armap) 7698 (bfd *, unsigned int, struct orl *, unsigned int, int); 7699 void * (*_bfd_read_ar_hdr_fn) (bfd *); 7700 bfd_boolean (*_bfd_write_ar_hdr_fn) (bfd *, bfd *); 7701 bfd * (*openr_next_archived_file) (bfd *, bfd *); 7702 #define bfd_get_elt_at_index(b,i) BFD_SEND (b, _bfd_get_elt_at_index, (b,i)) 7703 bfd * (*_bfd_get_elt_at_index) (bfd *, symindex); 7704 int (*_bfd_stat_arch_elt) (bfd *, struct stat *); 7705 bfd_boolean (*_bfd_update_armap_timestamp) (bfd *); 7706 7707 /* Entry points used for symbols. */ 7708 #define BFD_JUMP_TABLE_SYMBOLS(NAME) \ 7709 NAME##_get_symtab_upper_bound, \ 7710 NAME##_canonicalize_symtab, \ 7711 NAME##_make_empty_symbol, \ 7712 NAME##_print_symbol, \ 7713 NAME##_get_symbol_info, \ 7714 NAME##_get_symbol_version_string, \ 7715 NAME##_bfd_is_local_label_name, \ 7716 NAME##_bfd_is_target_special_symbol, \ 7717 NAME##_get_lineno, \ 7718 NAME##_find_nearest_line, \ 7719 NAME##_find_line, \ 7720 NAME##_find_inliner_info, \ 7721 NAME##_bfd_make_debug_symbol, \ 7722 NAME##_read_minisymbols, \ 7723 NAME##_minisymbol_to_symbol 7724 7725 long (*_bfd_get_symtab_upper_bound) (bfd *); 7726 long (*_bfd_canonicalize_symtab) 7727 (bfd *, struct bfd_symbol **); 7728 struct bfd_symbol * 7729 (*_bfd_make_empty_symbol) (bfd *); 7730 void (*_bfd_print_symbol) 7731 (bfd *, void *, struct bfd_symbol *, bfd_print_symbol_type); 7732 #define bfd_print_symbol(b,p,s,e) BFD_SEND (b, _bfd_print_symbol, (b,p,s,e)) 7733 void (*_bfd_get_symbol_info) 7734 (bfd *, struct bfd_symbol *, symbol_info *); 7735 #define bfd_get_symbol_info(b,p,e) BFD_SEND (b, _bfd_get_symbol_info, (b,p,e)) 7736 const char *(*_bfd_get_symbol_version_string) 7737 (bfd *, struct bfd_symbol *, bfd_boolean *); 7738 #define bfd_get_symbol_version_string(b,s,h) BFD_SEND (b, _bfd_get_symbol_version_string, (b,s,h)) 7739 bfd_boolean (*_bfd_is_local_label_name) (bfd *, const char *); 7740 bfd_boolean (*_bfd_is_target_special_symbol) (bfd *, asymbol *); 7741 alent * (*_get_lineno) (bfd *, struct bfd_symbol *); 7742 bfd_boolean (*_bfd_find_nearest_line) 7743 (bfd *, struct bfd_symbol **, struct bfd_section *, bfd_vma, 7744 const char **, const char **, unsigned int *, unsigned int *); 7745 bfd_boolean (*_bfd_find_line) 7746 (bfd *, struct bfd_symbol **, struct bfd_symbol *, 7747 const char **, unsigned int *); 7748 bfd_boolean (*_bfd_find_inliner_info) 7749 (bfd *, const char **, const char **, unsigned int *); 7750 /* Back-door to allow format-aware applications to create debug symbols 7751 while using BFD for everything else. Currently used by the assembler 7752 when creating COFF files. */ 7753 asymbol * (*_bfd_make_debug_symbol) 7754 (bfd *, void *, unsigned long size); 7755 #define bfd_read_minisymbols(b, d, m, s) \ 7756 BFD_SEND (b, _read_minisymbols, (b, d, m, s)) 7757 long (*_read_minisymbols) 7758 (bfd *, bfd_boolean, void **, unsigned int *); 7759 #define bfd_minisymbol_to_symbol(b, d, m, f) \ 7760 BFD_SEND (b, _minisymbol_to_symbol, (b, d, m, f)) 7761 asymbol * (*_minisymbol_to_symbol) 7762 (bfd *, bfd_boolean, const void *, asymbol *); 7763 7764 /* Routines for relocs. */ 7765 #define BFD_JUMP_TABLE_RELOCS(NAME) \ 7766 NAME##_get_reloc_upper_bound, \ 7767 NAME##_canonicalize_reloc, \ 7768 NAME##_bfd_reloc_type_lookup, \ 7769 NAME##_bfd_reloc_name_lookup 7770 7771 long (*_get_reloc_upper_bound) (bfd *, sec_ptr); 7772 long (*_bfd_canonicalize_reloc) 7773 (bfd *, sec_ptr, arelent **, struct bfd_symbol **); 7774 /* See documentation on reloc types. */ 7775 reloc_howto_type * 7776 (*reloc_type_lookup) (bfd *, bfd_reloc_code_real_type); 7777 reloc_howto_type * 7778 (*reloc_name_lookup) (bfd *, const char *); 7779 7780 7781 /* Routines used when writing an object file. */ 7782 #define BFD_JUMP_TABLE_WRITE(NAME) \ 7783 NAME##_set_arch_mach, \ 7784 NAME##_set_section_contents 7785 7786 bfd_boolean (*_bfd_set_arch_mach) 7787 (bfd *, enum bfd_architecture, unsigned long); 7788 bfd_boolean (*_bfd_set_section_contents) 7789 (bfd *, sec_ptr, const void *, file_ptr, bfd_size_type); 7790 7791 /* Routines used by the linker. */ 7792 #define BFD_JUMP_TABLE_LINK(NAME) \ 7793 NAME##_sizeof_headers, \ 7794 NAME##_bfd_get_relocated_section_contents, \ 7795 NAME##_bfd_relax_section, \ 7796 NAME##_bfd_link_hash_table_create, \ 7797 NAME##_bfd_link_add_symbols, \ 7798 NAME##_bfd_link_just_syms, \ 7799 NAME##_bfd_copy_link_hash_symbol_type, \ 7800 NAME##_bfd_final_link, \ 7801 NAME##_bfd_link_split_section, \ 7802 NAME##_bfd_link_check_relocs, \ 7803 NAME##_bfd_gc_sections, \ 7804 NAME##_bfd_lookup_section_flags, \ 7805 NAME##_bfd_merge_sections, \ 7806 NAME##_bfd_is_group_section, \ 7807 NAME##_bfd_discard_group, \ 7808 NAME##_section_already_linked, \ 7809 NAME##_bfd_define_common_symbol 7810 7811 int (*_bfd_sizeof_headers) (bfd *, struct bfd_link_info *); 7812 bfd_byte * (*_bfd_get_relocated_section_contents) 7813 (bfd *, struct bfd_link_info *, struct bfd_link_order *, 7814 bfd_byte *, bfd_boolean, struct bfd_symbol **); 7815 7816 bfd_boolean (*_bfd_relax_section) 7817 (bfd *, struct bfd_section *, struct bfd_link_info *, bfd_boolean *); 7818 7819 /* Create a hash table for the linker. Different backends store 7820 different information in this table. */ 7821 struct bfd_link_hash_table * 7822 (*_bfd_link_hash_table_create) (bfd *); 7823 7824 /* Add symbols from this object file into the hash table. */ 7825 bfd_boolean (*_bfd_link_add_symbols) (bfd *, struct bfd_link_info *); 7826 7827 /* Indicate that we are only retrieving symbol values from this section. */ 7828 void (*_bfd_link_just_syms) (asection *, struct bfd_link_info *); 7829 7830 /* Copy the symbol type and other attributes for a linker script 7831 assignment of one symbol to another. */ 7832 #define bfd_copy_link_hash_symbol_type(b, t, f) \ 7833 BFD_SEND (b, _bfd_copy_link_hash_symbol_type, (b, t, f)) 7834 void (*_bfd_copy_link_hash_symbol_type) 7835 (bfd *, struct bfd_link_hash_entry *, struct bfd_link_hash_entry *); 7836 7837 /* Do a link based on the link_order structures attached to each 7838 section of the BFD. */ 7839 bfd_boolean (*_bfd_final_link) (bfd *, struct bfd_link_info *); 7840 7841 /* Should this section be split up into smaller pieces during linking. */ 7842 bfd_boolean (*_bfd_link_split_section) (bfd *, struct bfd_section *); 7843 7844 /* Check the relocations in the bfd for validity. */ 7845 bfd_boolean (* _bfd_link_check_relocs)(bfd *, struct bfd_link_info *); 7846 7847 /* Remove sections that are not referenced from the output. */ 7848 bfd_boolean (*_bfd_gc_sections) (bfd *, struct bfd_link_info *); 7849 7850 /* Sets the bitmask of allowed and disallowed section flags. */ 7851 bfd_boolean (*_bfd_lookup_section_flags) (struct bfd_link_info *, 7852 struct flag_info *, 7853 asection *); 7854 7855 /* Attempt to merge SEC_MERGE sections. */ 7856 bfd_boolean (*_bfd_merge_sections) (bfd *, struct bfd_link_info *); 7857 7858 /* Is this section a member of a group? */ 7859 bfd_boolean (*_bfd_is_group_section) (bfd *, const struct bfd_section *); 7860 7861 /* Discard members of a group. */ 7862 bfd_boolean (*_bfd_discard_group) (bfd *, struct bfd_section *); 7863 7864 /* Check if SEC has been already linked during a reloceatable or 7865 final link. */ 7866 bfd_boolean (*_section_already_linked) (bfd *, asection *, 7867 struct bfd_link_info *); 7868 7869 /* Define a common symbol. */ 7870 bfd_boolean (*_bfd_define_common_symbol) (bfd *, struct bfd_link_info *, 7871 struct bfd_link_hash_entry *); 7872 7873 /* Routines to handle dynamic symbols and relocs. */ 7874 #define BFD_JUMP_TABLE_DYNAMIC(NAME) \ 7875 NAME##_get_dynamic_symtab_upper_bound, \ 7876 NAME##_canonicalize_dynamic_symtab, \ 7877 NAME##_get_synthetic_symtab, \ 7878 NAME##_get_dynamic_reloc_upper_bound, \ 7879 NAME##_canonicalize_dynamic_reloc 7880 7881 /* Get the amount of memory required to hold the dynamic symbols. */ 7882 long (*_bfd_get_dynamic_symtab_upper_bound) (bfd *); 7883 /* Read in the dynamic symbols. */ 7884 long (*_bfd_canonicalize_dynamic_symtab) 7885 (bfd *, struct bfd_symbol **); 7886 /* Create synthetized symbols. */ 7887 long (*_bfd_get_synthetic_symtab) 7888 (bfd *, long, struct bfd_symbol **, long, struct bfd_symbol **, 7889 struct bfd_symbol **); 7890 /* Get the amount of memory required to hold the dynamic relocs. */ 7891 long (*_bfd_get_dynamic_reloc_upper_bound) (bfd *); 7892 /* Read in the dynamic relocs. */ 7893 long (*_bfd_canonicalize_dynamic_reloc) 7894 (bfd *, arelent **, struct bfd_symbol **); 7895 A pointer to an alternative bfd_target in case the current one is not 7896satisfactory. This can happen when the target cpu supports both big 7897and little endian code, and target chosen by the linker has the wrong 7898endianness. The function open_output() in ld/ldlang.c uses this field 7899to find an alternative output format that is suitable. 7900 /* Opposite endian version of this target. */ 7901 const struct bfd_target * alternative_target; 7902 7903 /* Data for use by back-end routines, which isn't 7904 generic enough to belong in this structure. */ 7905 const void *backend_data; 7906 7907 } bfd_target; 7908 79092.12.1.1 `bfd_set_default_target' 7910................................. 7911 7912*Synopsis* 7913 bfd_boolean bfd_set_default_target (const char *name); 7914 *Description* 7915Set the default target vector to use when recognizing a BFD. This 7916takes the name of the target, which may be a BFD target name or a 7917configuration triplet. 7918 79192.12.1.2 `bfd_find_target' 7920.......................... 7921 7922*Synopsis* 7923 const bfd_target *bfd_find_target (const char *target_name, bfd *abfd); 7924 *Description* 7925Return a pointer to the transfer vector for the object target named 7926TARGET_NAME. If TARGET_NAME is `NULL', choose the one in the 7927environment variable `GNUTARGET'; if that is null or not defined, then 7928choose the first entry in the target list. Passing in the string 7929"default" or setting the environment variable to "default" will cause 7930the first entry in the target list to be returned, and 7931"target_defaulted" will be set in the BFD if ABFD isn't `NULL'. This 7932causes `bfd_check_format' to loop over all the targets to find the one 7933that matches the file being read. 7934 79352.12.1.3 `bfd_get_target_info' 7936.............................. 7937 7938*Synopsis* 7939 const bfd_target *bfd_get_target_info (const char *target_name, 7940 bfd *abfd, 7941 bfd_boolean *is_bigendian, 7942 int *underscoring, 7943 const char **def_target_arch); 7944 *Description* 7945Return a pointer to the transfer vector for the object target named 7946TARGET_NAME. If TARGET_NAME is `NULL', choose the one in the 7947environment variable `GNUTARGET'; if that is null or not defined, then 7948choose the first entry in the target list. Passing in the string 7949"default" or setting the environment variable to "default" will cause 7950the first entry in the target list to be returned, and 7951"target_defaulted" will be set in the BFD if ABFD isn't `NULL'. This 7952causes `bfd_check_format' to loop over all the targets to find the one 7953that matches the file being read. If IS_BIGENDIAN is not `NULL', then 7954set this value to target's endian mode. True for big-endian, FALSE for 7955little-endian or for invalid target. If UNDERSCORING is not `NULL', 7956then set this value to target's underscoring mode. Zero for 7957none-underscoring, -1 for invalid target, else the value of target 7958vector's symbol underscoring. If DEF_TARGET_ARCH is not `NULL', then 7959set it to the architecture string specified by the target_name. 7960 79612.12.1.4 `bfd_target_list' 7962.......................... 7963 7964*Synopsis* 7965 const char ** bfd_target_list (void); 7966 *Description* 7967Return a freshly malloced NULL-terminated vector of the names of all 7968the valid BFD targets. Do not modify the names. 7969 79702.12.1.5 `bfd_iterate_over_targets' 7971................................... 7972 7973*Synopsis* 7974 const bfd_target *bfd_iterate_over_targets 7975 (int (*func) (const bfd_target *, void *), 7976 void *data); 7977 *Description* 7978Call FUNC for each target in the list of BFD target vectors, passing 7979DATA to FUNC. Stop iterating if FUNC returns a non-zero result, and 7980return that target vector. Return NULL if FUNC always returns zero. 7981 79822.12.1.6 `bfd_flavour_name' 7983........................... 7984 7985*Synopsis* 7986 const char *bfd_flavour_name (enum bfd_flavour flavour); 7987 *Description* 7988Return the string form of FLAVOUR. 7989 7990 7991File: bfd.info, Node: Architectures, Next: Opening and Closing, Prev: Targets, Up: BFD front end 7992 79932.13 Architectures 7994================== 7995 7996BFD keeps one atom in a BFD describing the architecture of the data 7997attached to the BFD: a pointer to a `bfd_arch_info_type'. 7998 7999 Pointers to structures can be requested independently of a BFD so 8000that an architecture's information can be interrogated without access 8001to an open BFD. 8002 8003 The architecture information is provided by each architecture 8004package. The set of default architectures is selected by the macro 8005`SELECT_ARCHITECTURES'. This is normally set up in the 8006`config/TARGET.mt' file of your choice. If the name is not defined, 8007then all the architectures supported are included. 8008 8009 When BFD starts up, all the architectures are called with an 8010initialize method. It is up to the architecture back end to insert as 8011many items into the list of architectures as it wants to; generally 8012this would be one for each machine and one for the default case (an 8013item with a machine field of 0). 8014 8015 BFD's idea of an architecture is implemented in `archures.c'. 8016 80172.13.1 bfd_architecture 8018----------------------- 8019 8020*Description* 8021This enum gives the object file's CPU architecture, in a global 8022sense--i.e., what processor family does it belong to? Another field 8023indicates which processor within the family is in use. The machine 8024gives a number which distinguishes different versions of the 8025architecture, containing, for example, 2 and 3 for Intel i960 KA and 8026i960 KB, and 68020 and 68030 for Motorola 68020 and 68030. 8027 enum bfd_architecture 8028 { 8029 bfd_arch_unknown, /* File arch not known. */ 8030 bfd_arch_obscure, /* Arch known, not one of these. */ 8031 bfd_arch_m68k, /* Motorola 68xxx */ 8032 #define bfd_mach_m68000 1 8033 #define bfd_mach_m68008 2 8034 #define bfd_mach_m68010 3 8035 #define bfd_mach_m68020 4 8036 #define bfd_mach_m68030 5 8037 #define bfd_mach_m68040 6 8038 #define bfd_mach_m68060 7 8039 #define bfd_mach_cpu32 8 8040 #define bfd_mach_fido 9 8041 #define bfd_mach_mcf_isa_a_nodiv 10 8042 #define bfd_mach_mcf_isa_a 11 8043 #define bfd_mach_mcf_isa_a_mac 12 8044 #define bfd_mach_mcf_isa_a_emac 13 8045 #define bfd_mach_mcf_isa_aplus 14 8046 #define bfd_mach_mcf_isa_aplus_mac 15 8047 #define bfd_mach_mcf_isa_aplus_emac 16 8048 #define bfd_mach_mcf_isa_b_nousp 17 8049 #define bfd_mach_mcf_isa_b_nousp_mac 18 8050 #define bfd_mach_mcf_isa_b_nousp_emac 19 8051 #define bfd_mach_mcf_isa_b 20 8052 #define bfd_mach_mcf_isa_b_mac 21 8053 #define bfd_mach_mcf_isa_b_emac 22 8054 #define bfd_mach_mcf_isa_b_float 23 8055 #define bfd_mach_mcf_isa_b_float_mac 24 8056 #define bfd_mach_mcf_isa_b_float_emac 25 8057 #define bfd_mach_mcf_isa_c 26 8058 #define bfd_mach_mcf_isa_c_mac 27 8059 #define bfd_mach_mcf_isa_c_emac 28 8060 #define bfd_mach_mcf_isa_c_nodiv 29 8061 #define bfd_mach_mcf_isa_c_nodiv_mac 30 8062 #define bfd_mach_mcf_isa_c_nodiv_emac 31 8063 bfd_arch_vax, /* DEC Vax */ 8064 bfd_arch_i960, /* Intel 960 */ 8065 /* The order of the following is important. 8066 lower number indicates a machine type that 8067 only accepts a subset of the instructions 8068 available to machines with higher numbers. 8069 The exception is the "ca", which is 8070 incompatible with all other machines except 8071 "core". */ 8072 8073 #define bfd_mach_i960_core 1 8074 #define bfd_mach_i960_ka_sa 2 8075 #define bfd_mach_i960_kb_sb 3 8076 #define bfd_mach_i960_mc 4 8077 #define bfd_mach_i960_xa 5 8078 #define bfd_mach_i960_ca 6 8079 #define bfd_mach_i960_jx 7 8080 #define bfd_mach_i960_hx 8 8081 8082 bfd_arch_or1k, /* OpenRISC 1000 */ 8083 #define bfd_mach_or1k 1 8084 #define bfd_mach_or1knd 2 8085 8086 bfd_arch_sparc, /* SPARC */ 8087 #define bfd_mach_sparc 1 8088 /* The difference between v8plus and v9 is that v9 is a true 64 bit env. */ 8089 #define bfd_mach_sparc_sparclet 2 8090 #define bfd_mach_sparc_sparclite 3 8091 #define bfd_mach_sparc_v8plus 4 8092 #define bfd_mach_sparc_v8plusa 5 /* with ultrasparc add'ns. */ 8093 #define bfd_mach_sparc_sparclite_le 6 8094 #define bfd_mach_sparc_v9 7 8095 #define bfd_mach_sparc_v9a 8 /* with ultrasparc add'ns. */ 8096 #define bfd_mach_sparc_v8plusb 9 /* with cheetah add'ns. */ 8097 #define bfd_mach_sparc_v9b 10 /* with cheetah add'ns. */ 8098 #define bfd_mach_sparc_v8plusc 11 /* with UA2005 and T1 add'ns. */ 8099 #define bfd_mach_sparc_v9c 12 /* with UA2005 and T1 add'ns. */ 8100 #define bfd_mach_sparc_v8plusd 13 /* with UA2007 and T3 add'ns. */ 8101 #define bfd_mach_sparc_v9d 14 /* with UA2007 and T3 add'ns. */ 8102 #define bfd_mach_sparc_v8pluse 15 /* with OSA2001 and T4 add'ns (no IMA). */ 8103 #define bfd_mach_sparc_v9e 16 /* with OSA2001 and T4 add'ns (no IMA). */ 8104 #define bfd_mach_sparc_v8plusv 17 /* with OSA2011 and T4 and IMA and FJMAU add'ns. */ 8105 #define bfd_mach_sparc_v9v 18 /* with OSA2011 and T4 and IMA and FJMAU add'ns. */ 8106 #define bfd_mach_sparc_v8plusm 19 /* with OSA2015 and M7 add'ns. */ 8107 #define bfd_mach_sparc_v9m 20 /* with OSA2015 and M7 add'ns. */ 8108 /* Nonzero if MACH has the v9 instruction set. */ 8109 #define bfd_mach_sparc_v9_p(mach) \ 8110 ((mach) >= bfd_mach_sparc_v8plus && (mach) <= bfd_mach_sparc_v9m \ 8111 && (mach) != bfd_mach_sparc_sparclite_le) 8112 /* Nonzero if MACH is a 64 bit sparc architecture. */ 8113 #define bfd_mach_sparc_64bit_p(mach) \ 8114 ((mach) >= bfd_mach_sparc_v9 \ 8115 && (mach) != bfd_mach_sparc_v8plusb \ 8116 && (mach) != bfd_mach_sparc_v8plusc \ 8117 && (mach) != bfd_mach_sparc_v8plusd \ 8118 && (mach) != bfd_mach_sparc_v8pluse \ 8119 && (mach) != bfd_mach_sparc_v8plusv \ 8120 && (mach) != bfd_mach_sparc_v8plusm) 8121 bfd_arch_spu, /* PowerPC SPU */ 8122 #define bfd_mach_spu 256 8123 bfd_arch_mips, /* MIPS Rxxxx */ 8124 #define bfd_mach_mips3000 3000 8125 #define bfd_mach_mips3900 3900 8126 #define bfd_mach_mips4000 4000 8127 #define bfd_mach_mips4010 4010 8128 #define bfd_mach_mips4100 4100 8129 #define bfd_mach_mips4111 4111 8130 #define bfd_mach_mips4120 4120 8131 #define bfd_mach_mips4300 4300 8132 #define bfd_mach_mips4400 4400 8133 #define bfd_mach_mips4600 4600 8134 #define bfd_mach_mips4650 4650 8135 #define bfd_mach_mips5000 5000 8136 #define bfd_mach_mips5400 5400 8137 #define bfd_mach_mips5500 5500 8138 #define bfd_mach_mips5900 5900 8139 #define bfd_mach_mips6000 6000 8140 #define bfd_mach_mips7000 7000 8141 #define bfd_mach_mips8000 8000 8142 #define bfd_mach_mips9000 9000 8143 #define bfd_mach_mips10000 10000 8144 #define bfd_mach_mips12000 12000 8145 #define bfd_mach_mips14000 14000 8146 #define bfd_mach_mips16000 16000 8147 #define bfd_mach_mips16 16 8148 #define bfd_mach_mips5 5 8149 #define bfd_mach_mips_loongson_2e 3001 8150 #define bfd_mach_mips_loongson_2f 3002 8151 #define bfd_mach_mips_loongson_3a 3003 8152 #define bfd_mach_mips_sb1 12310201 /* octal 'SB', 01 */ 8153 #define bfd_mach_mips_octeon 6501 8154 #define bfd_mach_mips_octeonp 6601 8155 #define bfd_mach_mips_octeon2 6502 8156 #define bfd_mach_mips_octeon3 6503 8157 #define bfd_mach_mips_xlr 887682 /* decimal 'XLR' */ 8158 #define bfd_mach_mipsisa32 32 8159 #define bfd_mach_mipsisa32r2 33 8160 #define bfd_mach_mipsisa32r3 34 8161 #define bfd_mach_mipsisa32r5 36 8162 #define bfd_mach_mipsisa32r6 37 8163 #define bfd_mach_mipsisa64 64 8164 #define bfd_mach_mipsisa64r2 65 8165 #define bfd_mach_mipsisa64r3 66 8166 #define bfd_mach_mipsisa64r5 68 8167 #define bfd_mach_mipsisa64r6 69 8168 #define bfd_mach_mips_micromips 96 8169 bfd_arch_i386, /* Intel 386 */ 8170 #define bfd_mach_i386_intel_syntax (1 << 0) 8171 #define bfd_mach_i386_i8086 (1 << 1) 8172 #define bfd_mach_i386_i386 (1 << 2) 8173 #define bfd_mach_x86_64 (1 << 3) 8174 #define bfd_mach_x64_32 (1 << 4) 8175 #define bfd_mach_i386_i386_intel_syntax (bfd_mach_i386_i386 | bfd_mach_i386_intel_syntax) 8176 #define bfd_mach_x86_64_intel_syntax (bfd_mach_x86_64 | bfd_mach_i386_intel_syntax) 8177 #define bfd_mach_x64_32_intel_syntax (bfd_mach_x64_32 | bfd_mach_i386_intel_syntax) 8178 bfd_arch_l1om, /* Intel L1OM */ 8179 #define bfd_mach_l1om (1 << 5) 8180 #define bfd_mach_l1om_intel_syntax (bfd_mach_l1om | bfd_mach_i386_intel_syntax) 8181 bfd_arch_k1om, /* Intel K1OM */ 8182 #define bfd_mach_k1om (1 << 6) 8183 #define bfd_mach_k1om_intel_syntax (bfd_mach_k1om | bfd_mach_i386_intel_syntax) 8184 #define bfd_mach_i386_nacl (1 << 7) 8185 #define bfd_mach_i386_i386_nacl (bfd_mach_i386_i386 | bfd_mach_i386_nacl) 8186 #define bfd_mach_x86_64_nacl (bfd_mach_x86_64 | bfd_mach_i386_nacl) 8187 #define bfd_mach_x64_32_nacl (bfd_mach_x64_32 | bfd_mach_i386_nacl) 8188 bfd_arch_iamcu, /* Intel MCU */ 8189 #define bfd_mach_iamcu (1 << 8) 8190 #define bfd_mach_i386_iamcu (bfd_mach_i386_i386 | bfd_mach_iamcu) 8191 #define bfd_mach_i386_iamcu_intel_syntax (bfd_mach_i386_iamcu | bfd_mach_i386_intel_syntax) 8192 bfd_arch_we32k, /* AT&T WE32xxx */ 8193 bfd_arch_tahoe, /* CCI/Harris Tahoe */ 8194 bfd_arch_i860, /* Intel 860 */ 8195 bfd_arch_i370, /* IBM 360/370 Mainframes */ 8196 bfd_arch_romp, /* IBM ROMP PC/RT */ 8197 bfd_arch_convex, /* Convex */ 8198 bfd_arch_m88k, /* Motorola 88xxx */ 8199 bfd_arch_m98k, /* Motorola 98xxx */ 8200 bfd_arch_pyramid, /* Pyramid Technology */ 8201 bfd_arch_h8300, /* Renesas H8/300 (formerly Hitachi H8/300) */ 8202 #define bfd_mach_h8300 1 8203 #define bfd_mach_h8300h 2 8204 #define bfd_mach_h8300s 3 8205 #define bfd_mach_h8300hn 4 8206 #define bfd_mach_h8300sn 5 8207 #define bfd_mach_h8300sx 6 8208 #define bfd_mach_h8300sxn 7 8209 bfd_arch_pdp11, /* DEC PDP-11 */ 8210 bfd_arch_plugin, 8211 bfd_arch_powerpc, /* PowerPC */ 8212 #define bfd_mach_ppc 32 8213 #define bfd_mach_ppc64 64 8214 #define bfd_mach_ppc_403 403 8215 #define bfd_mach_ppc_403gc 4030 8216 #define bfd_mach_ppc_405 405 8217 #define bfd_mach_ppc_505 505 8218 #define bfd_mach_ppc_601 601 8219 #define bfd_mach_ppc_602 602 8220 #define bfd_mach_ppc_603 603 8221 #define bfd_mach_ppc_ec603e 6031 8222 #define bfd_mach_ppc_604 604 8223 #define bfd_mach_ppc_620 620 8224 #define bfd_mach_ppc_630 630 8225 #define bfd_mach_ppc_750 750 8226 #define bfd_mach_ppc_860 860 8227 #define bfd_mach_ppc_a35 35 8228 #define bfd_mach_ppc_rs64ii 642 8229 #define bfd_mach_ppc_rs64iii 643 8230 #define bfd_mach_ppc_7400 7400 8231 #define bfd_mach_ppc_e500 500 8232 #define bfd_mach_ppc_e500mc 5001 8233 #define bfd_mach_ppc_e500mc64 5005 8234 #define bfd_mach_ppc_e5500 5006 8235 #define bfd_mach_ppc_e6500 5007 8236 #define bfd_mach_ppc_titan 83 8237 #define bfd_mach_ppc_vle 84 8238 bfd_arch_rs6000, /* IBM RS/6000 */ 8239 #define bfd_mach_rs6k 6000 8240 #define bfd_mach_rs6k_rs1 6001 8241 #define bfd_mach_rs6k_rsc 6003 8242 #define bfd_mach_rs6k_rs2 6002 8243 bfd_arch_hppa, /* HP PA RISC */ 8244 #define bfd_mach_hppa10 10 8245 #define bfd_mach_hppa11 11 8246 #define bfd_mach_hppa20 20 8247 #define bfd_mach_hppa20w 25 8248 bfd_arch_d10v, /* Mitsubishi D10V */ 8249 #define bfd_mach_d10v 1 8250 #define bfd_mach_d10v_ts2 2 8251 #define bfd_mach_d10v_ts3 3 8252 bfd_arch_d30v, /* Mitsubishi D30V */ 8253 bfd_arch_dlx, /* DLX */ 8254 bfd_arch_m68hc11, /* Motorola 68HC11 */ 8255 bfd_arch_m68hc12, /* Motorola 68HC12 */ 8256 #define bfd_mach_m6812_default 0 8257 #define bfd_mach_m6812 1 8258 #define bfd_mach_m6812s 2 8259 bfd_arch_m9s12x, /* Freescale S12X */ 8260 bfd_arch_m9s12xg, /* Freescale XGATE */ 8261 bfd_arch_z8k, /* Zilog Z8000 */ 8262 #define bfd_mach_z8001 1 8263 #define bfd_mach_z8002 2 8264 bfd_arch_h8500, /* Renesas H8/500 (formerly Hitachi H8/500) */ 8265 bfd_arch_sh, /* Renesas / SuperH SH (formerly Hitachi SH) */ 8266 #define bfd_mach_sh 1 8267 #define bfd_mach_sh2 0x20 8268 #define bfd_mach_sh_dsp 0x2d 8269 #define bfd_mach_sh2a 0x2a 8270 #define bfd_mach_sh2a_nofpu 0x2b 8271 #define bfd_mach_sh2a_nofpu_or_sh4_nommu_nofpu 0x2a1 8272 #define bfd_mach_sh2a_nofpu_or_sh3_nommu 0x2a2 8273 #define bfd_mach_sh2a_or_sh4 0x2a3 8274 #define bfd_mach_sh2a_or_sh3e 0x2a4 8275 #define bfd_mach_sh2e 0x2e 8276 #define bfd_mach_sh3 0x30 8277 #define bfd_mach_sh3_nommu 0x31 8278 #define bfd_mach_sh3_dsp 0x3d 8279 #define bfd_mach_sh3e 0x3e 8280 #define bfd_mach_sh4 0x40 8281 #define bfd_mach_sh4_nofpu 0x41 8282 #define bfd_mach_sh4_nommu_nofpu 0x42 8283 #define bfd_mach_sh4a 0x4a 8284 #define bfd_mach_sh4a_nofpu 0x4b 8285 #define bfd_mach_sh4al_dsp 0x4d 8286 #define bfd_mach_sh5 0x50 8287 bfd_arch_alpha, /* Dec Alpha */ 8288 #define bfd_mach_alpha_ev4 0x10 8289 #define bfd_mach_alpha_ev5 0x20 8290 #define bfd_mach_alpha_ev6 0x30 8291 bfd_arch_arm, /* Advanced Risc Machines ARM. */ 8292 #define bfd_mach_arm_unknown 0 8293 #define bfd_mach_arm_2 1 8294 #define bfd_mach_arm_2a 2 8295 #define bfd_mach_arm_3 3 8296 #define bfd_mach_arm_3M 4 8297 #define bfd_mach_arm_4 5 8298 #define bfd_mach_arm_4T 6 8299 #define bfd_mach_arm_5 7 8300 #define bfd_mach_arm_5T 8 8301 #define bfd_mach_arm_5TE 9 8302 #define bfd_mach_arm_XScale 10 8303 #define bfd_mach_arm_ep9312 11 8304 #define bfd_mach_arm_iWMMXt 12 8305 #define bfd_mach_arm_iWMMXt2 13 8306 bfd_arch_nds32, /* Andes NDS32 */ 8307 #define bfd_mach_n1 1 8308 #define bfd_mach_n1h 2 8309 #define bfd_mach_n1h_v2 3 8310 #define bfd_mach_n1h_v3 4 8311 #define bfd_mach_n1h_v3m 5 8312 bfd_arch_ns32k, /* National Semiconductors ns32000 */ 8313 bfd_arch_w65, /* WDC 65816 */ 8314 bfd_arch_tic30, /* Texas Instruments TMS320C30 */ 8315 bfd_arch_tic4x, /* Texas Instruments TMS320C3X/4X */ 8316 #define bfd_mach_tic3x 30 8317 #define bfd_mach_tic4x 40 8318 bfd_arch_tic54x, /* Texas Instruments TMS320C54X */ 8319 bfd_arch_tic6x, /* Texas Instruments TMS320C6X */ 8320 bfd_arch_tic80, /* TI TMS320c80 (MVP) */ 8321 bfd_arch_v850, /* NEC V850 */ 8322 bfd_arch_v850_rh850,/* NEC V850 (using RH850 ABI) */ 8323 #define bfd_mach_v850 1 8324 #define bfd_mach_v850e 'E' 8325 #define bfd_mach_v850e1 '1' 8326 #define bfd_mach_v850e2 0x4532 8327 #define bfd_mach_v850e2v3 0x45325633 8328 #define bfd_mach_v850e3v5 0x45335635 /* ('E'|'3'|'V'|'5') */ 8329 bfd_arch_arc, /* ARC Cores */ 8330 #define bfd_mach_arc_a4 0 8331 #define bfd_mach_arc_a5 1 8332 #define bfd_mach_arc_arc600 2 8333 #define bfd_mach_arc_arc601 4 8334 #define bfd_mach_arc_arc700 3 8335 #define bfd_mach_arc_arcv2 5 8336 bfd_arch_m32c, /* Renesas M16C/M32C. */ 8337 #define bfd_mach_m16c 0x75 8338 #define bfd_mach_m32c 0x78 8339 bfd_arch_m32r, /* Renesas M32R (formerly Mitsubishi M32R/D) */ 8340 #define bfd_mach_m32r 1 /* For backwards compatibility. */ 8341 #define bfd_mach_m32rx 'x' 8342 #define bfd_mach_m32r2 '2' 8343 bfd_arch_mn10200, /* Matsushita MN10200 */ 8344 bfd_arch_mn10300, /* Matsushita MN10300 */ 8345 #define bfd_mach_mn10300 300 8346 #define bfd_mach_am33 330 8347 #define bfd_mach_am33_2 332 8348 bfd_arch_fr30, 8349 #define bfd_mach_fr30 0x46523330 8350 bfd_arch_frv, 8351 #define bfd_mach_frv 1 8352 #define bfd_mach_frvsimple 2 8353 #define bfd_mach_fr300 300 8354 #define bfd_mach_fr400 400 8355 #define bfd_mach_fr450 450 8356 #define bfd_mach_frvtomcat 499 /* fr500 prototype */ 8357 #define bfd_mach_fr500 500 8358 #define bfd_mach_fr550 550 8359 bfd_arch_moxie, /* The moxie processor */ 8360 #define bfd_mach_moxie 1 8361 bfd_arch_ft32, /* The ft32 processor */ 8362 #define bfd_mach_ft32 1 8363 bfd_arch_mcore, 8364 bfd_arch_mep, 8365 #define bfd_mach_mep 1 8366 #define bfd_mach_mep_h1 0x6831 8367 #define bfd_mach_mep_c5 0x6335 8368 bfd_arch_metag, 8369 #define bfd_mach_metag 1 8370 bfd_arch_ia64, /* HP/Intel ia64 */ 8371 #define bfd_mach_ia64_elf64 64 8372 #define bfd_mach_ia64_elf32 32 8373 bfd_arch_ip2k, /* Ubicom IP2K microcontrollers. */ 8374 #define bfd_mach_ip2022 1 8375 #define bfd_mach_ip2022ext 2 8376 bfd_arch_iq2000, /* Vitesse IQ2000. */ 8377 #define bfd_mach_iq2000 1 8378 #define bfd_mach_iq10 2 8379 bfd_arch_epiphany, /* Adapteva EPIPHANY */ 8380 #define bfd_mach_epiphany16 1 8381 #define bfd_mach_epiphany32 2 8382 bfd_arch_mt, 8383 #define bfd_mach_ms1 1 8384 #define bfd_mach_mrisc2 2 8385 #define bfd_mach_ms2 3 8386 bfd_arch_pj, 8387 bfd_arch_avr, /* Atmel AVR microcontrollers. */ 8388 #define bfd_mach_avr1 1 8389 #define bfd_mach_avr2 2 8390 #define bfd_mach_avr25 25 8391 #define bfd_mach_avr3 3 8392 #define bfd_mach_avr31 31 8393 #define bfd_mach_avr35 35 8394 #define bfd_mach_avr4 4 8395 #define bfd_mach_avr5 5 8396 #define bfd_mach_avr51 51 8397 #define bfd_mach_avr6 6 8398 #define bfd_mach_avrtiny 100 8399 #define bfd_mach_avrxmega1 101 8400 #define bfd_mach_avrxmega2 102 8401 #define bfd_mach_avrxmega3 103 8402 #define bfd_mach_avrxmega4 104 8403 #define bfd_mach_avrxmega5 105 8404 #define bfd_mach_avrxmega6 106 8405 #define bfd_mach_avrxmega7 107 8406 bfd_arch_bfin, /* ADI Blackfin */ 8407 #define bfd_mach_bfin 1 8408 bfd_arch_cr16, /* National Semiconductor CompactRISC (ie CR16). */ 8409 #define bfd_mach_cr16 1 8410 bfd_arch_cr16c, /* National Semiconductor CompactRISC. */ 8411 #define bfd_mach_cr16c 1 8412 bfd_arch_crx, /* National Semiconductor CRX. */ 8413 #define bfd_mach_crx 1 8414 bfd_arch_cris, /* Axis CRIS */ 8415 #define bfd_mach_cris_v0_v10 255 8416 #define bfd_mach_cris_v32 32 8417 #define bfd_mach_cris_v10_v32 1032 8418 bfd_arch_riscv, 8419 #define bfd_mach_riscv32 132 8420 #define bfd_mach_riscv64 164 8421 bfd_arch_rl78, 8422 #define bfd_mach_rl78 0x75 8423 bfd_arch_rx, /* Renesas RX. */ 8424 #define bfd_mach_rx 0x75 8425 bfd_arch_s390, /* IBM s390 */ 8426 #define bfd_mach_s390_31 31 8427 #define bfd_mach_s390_64 64 8428 bfd_arch_score, /* Sunplus score */ 8429 #define bfd_mach_score3 3 8430 #define bfd_mach_score7 7 8431 bfd_arch_mmix, /* Donald Knuth's educational processor. */ 8432 bfd_arch_xstormy16, 8433 #define bfd_mach_xstormy16 1 8434 bfd_arch_msp430, /* Texas Instruments MSP430 architecture. */ 8435 #define bfd_mach_msp11 11 8436 #define bfd_mach_msp110 110 8437 #define bfd_mach_msp12 12 8438 #define bfd_mach_msp13 13 8439 #define bfd_mach_msp14 14 8440 #define bfd_mach_msp15 15 8441 #define bfd_mach_msp16 16 8442 #define bfd_mach_msp20 20 8443 #define bfd_mach_msp21 21 8444 #define bfd_mach_msp22 22 8445 #define bfd_mach_msp23 23 8446 #define bfd_mach_msp24 24 8447 #define bfd_mach_msp26 26 8448 #define bfd_mach_msp31 31 8449 #define bfd_mach_msp32 32 8450 #define bfd_mach_msp33 33 8451 #define bfd_mach_msp41 41 8452 #define bfd_mach_msp42 42 8453 #define bfd_mach_msp43 43 8454 #define bfd_mach_msp44 44 8455 #define bfd_mach_msp430x 45 8456 #define bfd_mach_msp46 46 8457 #define bfd_mach_msp47 47 8458 #define bfd_mach_msp54 54 8459 bfd_arch_xc16x, /* Infineon's XC16X Series. */ 8460 #define bfd_mach_xc16x 1 8461 #define bfd_mach_xc16xl 2 8462 #define bfd_mach_xc16xs 3 8463 bfd_arch_xgate, /* Freescale XGATE */ 8464 #define bfd_mach_xgate 1 8465 bfd_arch_xtensa, /* Tensilica's Xtensa cores. */ 8466 #define bfd_mach_xtensa 1 8467 bfd_arch_z80, 8468 #define bfd_mach_z80strict 1 /* No undocumented opcodes. */ 8469 #define bfd_mach_z80 3 /* With ixl, ixh, iyl, and iyh. */ 8470 #define bfd_mach_z80full 7 /* All undocumented instructions. */ 8471 #define bfd_mach_r800 11 /* R800: successor with multiplication. */ 8472 bfd_arch_lm32, /* Lattice Mico32 */ 8473 #define bfd_mach_lm32 1 8474 bfd_arch_microblaze,/* Xilinx MicroBlaze. */ 8475 bfd_arch_tilepro, /* Tilera TILEPro */ 8476 bfd_arch_tilegx, /* Tilera TILE-Gx */ 8477 #define bfd_mach_tilepro 1 8478 #define bfd_mach_tilegx 1 8479 #define bfd_mach_tilegx32 2 8480 bfd_arch_aarch64, /* AArch64 */ 8481 #define bfd_mach_aarch64 0 8482 #define bfd_mach_aarch64_ilp32 32 8483 bfd_arch_nios2, /* Nios II */ 8484 #define bfd_mach_nios2 0 8485 #define bfd_mach_nios2r1 1 8486 #define bfd_mach_nios2r2 2 8487 bfd_arch_visium, /* Visium */ 8488 #define bfd_mach_visium 1 8489 bfd_arch_last 8490 }; 8491 84922.13.2 bfd_arch_info 8493-------------------- 8494 8495*Description* 8496This structure contains information on architectures for use within BFD. 8497 8498 typedef struct bfd_arch_info 8499 { 8500 int bits_per_word; 8501 int bits_per_address; 8502 int bits_per_byte; 8503 enum bfd_architecture arch; 8504 unsigned long mach; 8505 const char *arch_name; 8506 const char *printable_name; 8507 unsigned int section_align_power; 8508 /* TRUE if this is the default machine for the architecture. 8509 The default arch should be the first entry for an arch so that 8510 all the entries for that arch can be accessed via `next'. */ 8511 bfd_boolean the_default; 8512 const struct bfd_arch_info * (*compatible) 8513 (const struct bfd_arch_info *a, const struct bfd_arch_info *b); 8514 8515 bfd_boolean (*scan) (const struct bfd_arch_info *, const char *); 8516 8517 /* Allocate via bfd_malloc and return a fill buffer of size COUNT. If 8518 IS_BIGENDIAN is TRUE, the order of bytes is big endian. If CODE is 8519 TRUE, the buffer contains code. */ 8520 void *(*fill) (bfd_size_type count, bfd_boolean is_bigendian, 8521 bfd_boolean code); 8522 8523 const struct bfd_arch_info *next; 8524 } 8525 bfd_arch_info_type; 8526 85272.13.2.1 `bfd_printable_name' 8528............................. 8529 8530*Synopsis* 8531 const char *bfd_printable_name (bfd *abfd); 8532 *Description* 8533Return a printable string representing the architecture and machine 8534from the pointer to the architecture info structure. 8535 85362.13.2.2 `bfd_scan_arch' 8537........................ 8538 8539*Synopsis* 8540 const bfd_arch_info_type *bfd_scan_arch (const char *string); 8541 *Description* 8542Figure out if BFD supports any cpu which could be described with the 8543name STRING. Return a pointer to an `arch_info' structure if a machine 8544is found, otherwise NULL. 8545 85462.13.2.3 `bfd_arch_list' 8547........................ 8548 8549*Synopsis* 8550 const char **bfd_arch_list (void); 8551 *Description* 8552Return a freshly malloced NULL-terminated vector of the names of all 8553the valid BFD architectures. Do not modify the names. 8554 85552.13.2.4 `bfd_arch_get_compatible' 8556.................................. 8557 8558*Synopsis* 8559 const bfd_arch_info_type *bfd_arch_get_compatible 8560 (const bfd *abfd, const bfd *bbfd, bfd_boolean accept_unknowns); 8561 *Description* 8562Determine whether two BFDs' architectures and machine types are 8563compatible. Calculates the lowest common denominator between the two 8564architectures and machine types implied by the BFDs and returns a 8565pointer to an `arch_info' structure describing the compatible machine. 8566 85672.13.2.5 `bfd_default_arch_struct' 8568.................................. 8569 8570*Description* 8571The `bfd_default_arch_struct' is an item of `bfd_arch_info_type' which 8572has been initialized to a fairly generic state. A BFD starts life by 8573pointing to this structure, until the correct back end has determined 8574the real architecture of the file. 8575 extern const bfd_arch_info_type bfd_default_arch_struct; 8576 85772.13.2.6 `bfd_set_arch_info' 8578............................ 8579 8580*Synopsis* 8581 void bfd_set_arch_info (bfd *abfd, const bfd_arch_info_type *arg); 8582 *Description* 8583Set the architecture info of ABFD to ARG. 8584 85852.13.2.7 `bfd_default_set_arch_mach' 8586.................................... 8587 8588*Synopsis* 8589 bfd_boolean bfd_default_set_arch_mach 8590 (bfd *abfd, enum bfd_architecture arch, unsigned long mach); 8591 *Description* 8592Set the architecture and machine type in BFD ABFD to ARCH and MACH. 8593Find the correct pointer to a structure and insert it into the 8594`arch_info' pointer. 8595 85962.13.2.8 `bfd_get_arch' 8597....................... 8598 8599*Synopsis* 8600 enum bfd_architecture bfd_get_arch (bfd *abfd); 8601 *Description* 8602Return the enumerated type which describes the BFD ABFD's architecture. 8603 86042.13.2.9 `bfd_get_mach' 8605....................... 8606 8607*Synopsis* 8608 unsigned long bfd_get_mach (bfd *abfd); 8609 *Description* 8610Return the long type which describes the BFD ABFD's machine. 8611 86122.13.2.10 `bfd_arch_bits_per_byte' 8613.................................. 8614 8615*Synopsis* 8616 unsigned int bfd_arch_bits_per_byte (bfd *abfd); 8617 *Description* 8618Return the number of bits in one of the BFD ABFD's architecture's bytes. 8619 86202.13.2.11 `bfd_arch_bits_per_address' 8621..................................... 8622 8623*Synopsis* 8624 unsigned int bfd_arch_bits_per_address (bfd *abfd); 8625 *Description* 8626Return the number of bits in one of the BFD ABFD's architecture's 8627addresses. 8628 86292.13.2.12 `bfd_default_compatible' 8630.................................. 8631 8632*Synopsis* 8633 const bfd_arch_info_type *bfd_default_compatible 8634 (const bfd_arch_info_type *a, const bfd_arch_info_type *b); 8635 *Description* 8636The default function for testing for compatibility. 8637 86382.13.2.13 `bfd_default_scan' 8639............................ 8640 8641*Synopsis* 8642 bfd_boolean bfd_default_scan 8643 (const struct bfd_arch_info *info, const char *string); 8644 *Description* 8645The default function for working out whether this is an architecture 8646hit and a machine hit. 8647 86482.13.2.14 `bfd_get_arch_info' 8649............................. 8650 8651*Synopsis* 8652 const bfd_arch_info_type *bfd_get_arch_info (bfd *abfd); 8653 *Description* 8654Return the architecture info struct in ABFD. 8655 86562.13.2.15 `bfd_lookup_arch' 8657........................... 8658 8659*Synopsis* 8660 const bfd_arch_info_type *bfd_lookup_arch 8661 (enum bfd_architecture arch, unsigned long machine); 8662 *Description* 8663Look for the architecture info structure which matches the arguments 8664ARCH and MACHINE. A machine of 0 matches the machine/architecture 8665structure which marks itself as the default. 8666 86672.13.2.16 `bfd_printable_arch_mach' 8668................................... 8669 8670*Synopsis* 8671 const char *bfd_printable_arch_mach 8672 (enum bfd_architecture arch, unsigned long machine); 8673 *Description* 8674Return a printable string representing the architecture and machine 8675type. 8676 8677 This routine is depreciated. 8678 86792.13.2.17 `bfd_octets_per_byte' 8680............................... 8681 8682*Synopsis* 8683 unsigned int bfd_octets_per_byte (bfd *abfd); 8684 *Description* 8685Return the number of octets (8-bit quantities) per target byte (minimum 8686addressable unit). In most cases, this will be one, but some DSP 8687targets have 16, 32, or even 48 bits per byte. 8688 86892.13.2.18 `bfd_arch_mach_octets_per_byte' 8690......................................... 8691 8692*Synopsis* 8693 unsigned int bfd_arch_mach_octets_per_byte 8694 (enum bfd_architecture arch, unsigned long machine); 8695 *Description* 8696See bfd_octets_per_byte. 8697 8698 This routine is provided for those cases where a bfd * is not 8699available 8700 87012.13.2.19 `bfd_arch_default_fill' 8702................................. 8703 8704*Synopsis* 8705 void *bfd_arch_default_fill (bfd_size_type count, 8706 bfd_boolean is_bigendian, 8707 bfd_boolean code); 8708 *Description* 8709Allocate via bfd_malloc and return a fill buffer of size COUNT. If 8710IS_BIGENDIAN is TRUE, the order of bytes is big endian. If CODE is 8711TRUE, the buffer contains code. 8712 8713 8714File: bfd.info, Node: Opening and Closing, Next: Internal, Prev: Architectures, Up: BFD front end 8715 8716 /* Set to N to open the next N BFDs using an alternate id space. */ 8717 extern unsigned int bfd_use_reserved_id; 8718 87192.14 Opening and closing BFDs 8720============================= 8721 87222.14.1 Functions for opening and closing 8723---------------------------------------- 8724 87252.14.1.1 `bfd_fopen' 8726.................... 8727 8728*Synopsis* 8729 bfd *bfd_fopen (const char *filename, const char *target, 8730 const char *mode, int fd); 8731 *Description* 8732Open the file FILENAME with the target TARGET. Return a pointer to the 8733created BFD. If FD is not -1, then `fdopen' is used to open the file; 8734otherwise, `fopen' is used. MODE is passed directly to `fopen' or 8735`fdopen'. 8736 8737 Calls `bfd_find_target', so TARGET is interpreted as by that 8738function. 8739 8740 The new BFD is marked as cacheable iff FD is -1. 8741 8742 If `NULL' is returned then an error has occured. Possible errors 8743are `bfd_error_no_memory', `bfd_error_invalid_target' or `system_call' 8744error. 8745 8746 On error, FD is always closed. 8747 8748 A copy of the FILENAME argument is stored in the newly created BFD. 8749It can be accessed via the bfd_get_filename() macro. 8750 87512.14.1.2 `bfd_openr' 8752.................... 8753 8754*Synopsis* 8755 bfd *bfd_openr (const char *filename, const char *target); 8756 *Description* 8757Open the file FILENAME (using `fopen') with the target TARGET. Return 8758a pointer to the created BFD. 8759 8760 Calls `bfd_find_target', so TARGET is interpreted as by that 8761function. 8762 8763 If `NULL' is returned then an error has occured. Possible errors 8764are `bfd_error_no_memory', `bfd_error_invalid_target' or `system_call' 8765error. 8766 8767 A copy of the FILENAME argument is stored in the newly created BFD. 8768It can be accessed via the bfd_get_filename() macro. 8769 87702.14.1.3 `bfd_fdopenr' 8771...................... 8772 8773*Synopsis* 8774 bfd *bfd_fdopenr (const char *filename, const char *target, int fd); 8775 *Description* 8776`bfd_fdopenr' is to `bfd_fopenr' much like `fdopen' is to `fopen'. It 8777opens a BFD on a file already described by the FD supplied. 8778 8779 When the file is later `bfd_close'd, the file descriptor will be 8780closed. If the caller desires that this file descriptor be cached by 8781BFD (opened as needed, closed as needed to free descriptors for other 8782opens), with the supplied FD used as an initial file descriptor (but 8783subject to closure at any time), call bfd_set_cacheable(bfd, 1) on the 8784returned BFD. The default is to assume no caching; the file descriptor 8785will remain open until `bfd_close', and will not be affected by BFD 8786operations on other files. 8787 8788 Possible errors are `bfd_error_no_memory', 8789`bfd_error_invalid_target' and `bfd_error_system_call'. 8790 8791 On error, FD is closed. 8792 8793 A copy of the FILENAME argument is stored in the newly created BFD. 8794It can be accessed via the bfd_get_filename() macro. 8795 87962.14.1.4 `bfd_openstreamr' 8797.......................... 8798 8799*Synopsis* 8800 bfd *bfd_openstreamr (const char * filename, const char * target, void * stream); 8801 *Description* 8802Open a BFD for read access on an existing stdio stream. When the BFD 8803is passed to `bfd_close', the stream will be closed. 8804 8805 A copy of the FILENAME argument is stored in the newly created BFD. 8806It can be accessed via the bfd_get_filename() macro. 8807 88082.14.1.5 `bfd_openr_iovec' 8809.......................... 8810 8811*Synopsis* 8812 bfd *bfd_openr_iovec (const char *filename, const char *target, 8813 void *(*open_func) (struct bfd *nbfd, 8814 void *open_closure), 8815 void *open_closure, 8816 file_ptr (*pread_func) (struct bfd *nbfd, 8817 void *stream, 8818 void *buf, 8819 file_ptr nbytes, 8820 file_ptr offset), 8821 int (*close_func) (struct bfd *nbfd, 8822 void *stream), 8823 int (*stat_func) (struct bfd *abfd, 8824 void *stream, 8825 struct stat *sb)); 8826 *Description* 8827Create and return a BFD backed by a read-only STREAM. The STREAM is 8828created using OPEN_FUNC, accessed using PREAD_FUNC and destroyed using 8829CLOSE_FUNC. 8830 8831 Calls `bfd_find_target', so TARGET is interpreted as by that 8832function. 8833 8834 Calls OPEN_FUNC (which can call `bfd_zalloc' and `bfd_get_filename') 8835to obtain the read-only stream backing the BFD. OPEN_FUNC either 8836succeeds returning the non-`NULL' STREAM, or fails returning `NULL' 8837(setting `bfd_error'). 8838 8839 Calls PREAD_FUNC to request NBYTES of data from STREAM starting at 8840OFFSET (e.g., via a call to `bfd_read'). PREAD_FUNC either succeeds 8841returning the number of bytes read (which can be less than NBYTES when 8842end-of-file), or fails returning -1 (setting `bfd_error'). 8843 8844 Calls CLOSE_FUNC when the BFD is later closed using `bfd_close'. 8845CLOSE_FUNC either succeeds returning 0, or fails returning -1 (setting 8846`bfd_error'). 8847 8848 Calls STAT_FUNC to fill in a stat structure for bfd_stat, 8849bfd_get_size, and bfd_get_mtime calls. STAT_FUNC returns 0 on success, 8850or returns -1 on failure (setting `bfd_error'). 8851 8852 If `bfd_openr_iovec' returns `NULL' then an error has occurred. 8853Possible errors are `bfd_error_no_memory', `bfd_error_invalid_target' 8854and `bfd_error_system_call'. 8855 8856 A copy of the FILENAME argument is stored in the newly created BFD. 8857It can be accessed via the bfd_get_filename() macro. 8858 88592.14.1.6 `bfd_openw' 8860.................... 8861 8862*Synopsis* 8863 bfd *bfd_openw (const char *filename, const char *target); 8864 *Description* 8865Create a BFD, associated with file FILENAME, using the file format 8866TARGET, and return a pointer to it. 8867 8868 Possible errors are `bfd_error_system_call', `bfd_error_no_memory', 8869`bfd_error_invalid_target'. 8870 8871 A copy of the FILENAME argument is stored in the newly created BFD. 8872It can be accessed via the bfd_get_filename() macro. 8873 88742.14.1.7 `bfd_close' 8875.................... 8876 8877*Synopsis* 8878 bfd_boolean bfd_close (bfd *abfd); 8879 *Description* 8880Close a BFD. If the BFD was open for writing, then pending operations 8881are completed and the file written out and closed. If the created file 8882is executable, then `chmod' is called to mark it as such. 8883 8884 All memory attached to the BFD is released. 8885 8886 The file descriptor associated with the BFD is closed (even if it 8887was passed in to BFD by `bfd_fdopenr'). 8888 8889 *Returns* 8890`TRUE' is returned if all is ok, otherwise `FALSE'. 8891 88922.14.1.8 `bfd_close_all_done' 8893............................. 8894 8895*Synopsis* 8896 bfd_boolean bfd_close_all_done (bfd *); 8897 *Description* 8898Close a BFD. Differs from `bfd_close' since it does not complete any 8899pending operations. This routine would be used if the application had 8900just used BFD for swapping and didn't want to use any of the writing 8901code. 8902 8903 If the created file is executable, then `chmod' is called to mark it 8904as such. 8905 8906 All memory attached to the BFD is released. 8907 8908 *Returns* 8909`TRUE' is returned if all is ok, otherwise `FALSE'. 8910 89112.14.1.9 `bfd_create' 8912..................... 8913 8914*Synopsis* 8915 bfd *bfd_create (const char *filename, bfd *templ); 8916 *Description* 8917Create a new BFD in the manner of `bfd_openw', but without opening a 8918file. The new BFD takes the target from the target used by TEMPL. The 8919format is always set to `bfd_object'. 8920 8921 A copy of the FILENAME argument is stored in the newly created BFD. 8922It can be accessed via the bfd_get_filename() macro. 8923 89242.14.1.10 `bfd_make_writable' 8925............................. 8926 8927*Synopsis* 8928 bfd_boolean bfd_make_writable (bfd *abfd); 8929 *Description* 8930Takes a BFD as created by `bfd_create' and converts it into one like as 8931returned by `bfd_openw'. It does this by converting the BFD to 8932BFD_IN_MEMORY. It's assumed that you will call `bfd_make_readable' on 8933this bfd later. 8934 8935 *Returns* 8936`TRUE' is returned if all is ok, otherwise `FALSE'. 8937 89382.14.1.11 `bfd_make_readable' 8939............................. 8940 8941*Synopsis* 8942 bfd_boolean bfd_make_readable (bfd *abfd); 8943 *Description* 8944Takes a BFD as created by `bfd_create' and `bfd_make_writable' and 8945converts it into one like as returned by `bfd_openr'. It does this by 8946writing the contents out to the memory buffer, then reversing the 8947direction. 8948 8949 *Returns* 8950`TRUE' is returned if all is ok, otherwise `FALSE'. 8951 89522.14.1.12 `bfd_alloc' 8953..................... 8954 8955*Synopsis* 8956 void *bfd_alloc (bfd *abfd, bfd_size_type wanted); 8957 *Description* 8958Allocate a block of WANTED bytes of memory attached to `abfd' and 8959return a pointer to it. 8960 89612.14.1.13 `bfd_alloc2' 8962...................... 8963 8964*Synopsis* 8965 void *bfd_alloc2 (bfd *abfd, bfd_size_type nmemb, bfd_size_type size); 8966 *Description* 8967Allocate a block of NMEMB elements of SIZE bytes each of memory 8968attached to `abfd' and return a pointer to it. 8969 89702.14.1.14 `bfd_zalloc' 8971...................... 8972 8973*Synopsis* 8974 void *bfd_zalloc (bfd *abfd, bfd_size_type wanted); 8975 *Description* 8976Allocate a block of WANTED bytes of zeroed memory attached to `abfd' 8977and return a pointer to it. 8978 89792.14.1.15 `bfd_zalloc2' 8980....................... 8981 8982*Synopsis* 8983 void *bfd_zalloc2 (bfd *abfd, bfd_size_type nmemb, bfd_size_type size); 8984 *Description* 8985Allocate a block of NMEMB elements of SIZE bytes each of zeroed memory 8986attached to `abfd' and return a pointer to it. 8987 89882.14.1.16 `bfd_calc_gnu_debuglink_crc32' 8989........................................ 8990 8991*Synopsis* 8992 unsigned long bfd_calc_gnu_debuglink_crc32 8993 (unsigned long crc, const unsigned char *buf, bfd_size_type len); 8994 *Description* 8995Computes a CRC value as used in the .gnu_debuglink section. Advances 8996the previously computed CRC value by computing and adding in the crc32 8997for LEN bytes of BUF. 8998 8999 *Returns* 9000Return the updated CRC32 value. 9001 90022.14.1.17 `bfd_get_debug_link_info' 9003................................... 9004 9005*Synopsis* 9006 char *bfd_get_debug_link_info (bfd *abfd, unsigned long *crc32_out); 9007 *Description* 9008Fetch the filename and CRC32 value for any separate debuginfo 9009associated with ABFD. Return NULL if no such info found, otherwise 9010return filename and update CRC32_OUT. The returned filename is 9011allocated with `malloc'; freeing it is the responsibility of the caller. 9012 90132.14.1.18 `bfd_get_alt_debug_link_info' 9014....................................... 9015 9016*Synopsis* 9017 char *bfd_get_alt_debug_link_info (bfd * abfd, 9018 bfd_size_type *buildid_len, 9019 bfd_byte **buildid_out); 9020 *Description* 9021Fetch the filename and BuildID value for any alternate debuginfo 9022associated with ABFD. Return NULL if no such info found, otherwise 9023return filename and update BUILDID_LEN and BUILDID_OUT. The returned 9024filename and build_id are allocated with `malloc'; freeing them is the 9025responsibility of the caller. 9026 90272.14.1.19 `separate_debug_file_exists' 9028...................................... 9029 9030*Synopsis* 9031 bfd_boolean separate_debug_file_exists 9032 (char *name, unsigned long crc32); 9033 *Description* 9034Checks to see if NAME is a file and if its contents match CRC32. 9035 90362.14.1.20 `separate_alt_debug_file_exists' 9037.......................................... 9038 9039*Synopsis* 9040 bfd_boolean separate_alt_debug_file_exists 9041 (char *name, unsigned long buildid); 9042 *Description* 9043Checks to see if NAME is a file and if its BuildID matches BUILDID. 9044 90452.14.1.21 `find_separate_debug_file' 9046.................................... 9047 9048*Synopsis* 9049 char *find_separate_debug_file 9050 (bfd *abfd, const char *dir, bfd_boolean include_dirs, 9051 get_func_type get, check_func_type check); 9052 *Description* 9053Searches for a debug information file corresponding to ABFD. The name 9054of the separate debug info file is returned by the GET function. This 9055function scans various fixed locations in the filesystem, including the 9056file tree rooted at DIR. If the INCLUDE_DIRS parameter is true then 9057the directory components of ABFD's filename will be included in the 9058searched locations. 9059 9060 Returns the filename of the first file to be found which receives a 9061TRUE result from the CHECK function. Returns NULL if no valid file 9062could be found. 9063 90642.14.1.22 `bfd_follow_gnu_debuglink' 9065.................................... 9066 9067*Synopsis* 9068 char *bfd_follow_gnu_debuglink (bfd *abfd, const char *dir); 9069 *Description* 9070Takes a BFD and searches it for a .gnu_debuglink section. If this 9071section is found, it examines the section for the name and checksum of 9072a '.debug' file containing auxiliary debugging information. It then 9073searches the filesystem for this .debug file in some standard 9074locations, including the directory tree rooted at DIR, and if found 9075returns the full filename. 9076 9077 If DIR is NULL, the search will take place starting at the current 9078directory. 9079 9080 *Returns* 9081`NULL' on any errors or failure to locate the .debug file, otherwise a 9082pointer to a heap-allocated string containing the filename. The caller 9083is responsible for freeing this string. 9084 90852.14.1.23 `bfd_follow_gnu_debugaltlink' 9086....................................... 9087 9088*Synopsis* 9089 char *bfd_follow_gnu_debugaltlink (bfd *abfd, const char *dir); 9090 *Description* 9091Takes a BFD and searches it for a .gnu_debugaltlink section. If this 9092section is found, it examines the section for the name of a file 9093containing auxiliary debugging information. It then searches the 9094filesystem for this file in a set of standard locations, including the 9095directory tree rooted at DIR, and if found returns the full filename. 9096 9097 If DIR is NULL, the search will take place starting at the current 9098directory. 9099 9100 *Returns* 9101`NULL' on any errors or failure to locate the debug file, otherwise a 9102pointer to a heap-allocated string containing the filename. The caller 9103is responsible for freeing this string. 9104 91052.14.1.24 `bfd_create_gnu_debuglink_section' 9106............................................ 9107 9108*Synopsis* 9109 struct bfd_section *bfd_create_gnu_debuglink_section 9110 (bfd *abfd, const char *filename); 9111 *Description* 9112Takes a BFD and adds a .gnu_debuglink section to it. The section is 9113sized to be big enough to contain a link to the specified FILENAME. 9114 9115 *Returns* 9116A pointer to the new section is returned if all is ok. Otherwise 9117`NULL' is returned and bfd_error is set. 9118 91192.14.1.25 `bfd_fill_in_gnu_debuglink_section' 9120............................................. 9121 9122*Synopsis* 9123 bfd_boolean bfd_fill_in_gnu_debuglink_section 9124 (bfd *abfd, struct bfd_section *sect, const char *filename); 9125 *Description* 9126Takes a BFD and containing a .gnu_debuglink section SECT and fills in 9127the contents of the section to contain a link to the specified 9128FILENAME. The filename should be relative to the current directory. 9129 9130 *Returns* 9131`TRUE' is returned if all is ok. Otherwise `FALSE' is returned and 9132bfd_error is set. 9133 91342.14.1.26 `get_build_id' 9135........................ 9136 9137*Synopsis* 9138 struct bfd_build_id * get_build_id 9139 (bfd *abfd); 9140 *Description* 9141Finds the build-id associated with ABFD. If the build-id is extracted 9142from the note section then a build-id structure is built for it, using 9143memory allocated to ABFD, and this is then attached to the ABFD. 9144 9145 Returns a pointer to the build-id structure if a build-id could be 9146found. If no build-id is found NULL is returned and error code is set. 9147 91482.14.1.27 `get_build_id_name' 9149............................. 9150 9151*Synopsis* 9152 char * get_build_id_name 9153 (bfd *abfd, unsigned long *build_id_out) 9154 *Description* 9155Searches ABFD for a build-id, and then constructs a pathname from it. 9156The path is computed as .build-id/NN/NN+NN.debug where NNNN+NN is the 9157build-id value as a hexadecimal string. 9158 9159 Returns the constructed filename or NULL upon error. It is the 9160caller's responsibility to free the memory used to hold the filename. 9161If a filename is returned then the BUILD_ID_OUT parameter is set to a 9162pointer to the build_id structure. 9163 91642.14.1.28 `check_build_id_file' 9165............................... 9166 9167*Synopsis* 9168 bfd_boolean check_build_id_file 9169 (char *name, unsigned long buildid); 9170 *Description* 9171Checks to see if NAME is a readable file and if its build-id matches 9172BUILDID. 9173 9174 Returns TRUE if the file exists, is readable, and contains a build-id 9175which matches BUILD-ID. 9176 91772.14.1.29 `bfd_follow_build_id_debuglink' 9178......................................... 9179 9180*Synopsis* 9181 char *bfd_follow_build_id_debuglink (bfd *abfd, const char *dir); 9182 *Description* 9183Takes ABFD and searches it for a .note.gnu.build-id section. If this 9184section is found, it extracts the value of the NT_GNU_BUILD_ID note, 9185which should be a hexadecimal value NNNN+NN (for 32+ hex digits). It 9186then searches the filesystem for a file named .BUILD-ID/NN/NN+NN.DEBUG 9187in a set of standard locations, including the directory tree rooted at 9188DIR. The filename of the first matching file to be found is returned. 9189A matching file should contain a .note.gnu.build-id section with the 9190same NNNN+NN note as ABFD, although this check is currently not 9191implemented. 9192 9193 If DIR is NULL, the search will take place starting at the current 9194directory. 9195 9196 *Returns* 9197`NULL' on any errors or failure to locate the debug file, otherwise a 9198pointer to a heap-allocated string containing the filename. The caller 9199is responsible for freeing this string. 9200 9201 9202File: bfd.info, Node: Internal, Next: File Caching, Prev: Opening and Closing, Up: BFD front end 9203 92042.15 Implementation details 9205=========================== 9206 92072.15.1 Internal functions 9208------------------------- 9209 9210*Description* 9211These routines are used within BFD. They are not intended for export, 9212but are documented here for completeness. 9213 92142.15.1.1 `bfd_write_bigendian_4byte_int' 9215........................................ 9216 9217*Synopsis* 9218 bfd_boolean bfd_write_bigendian_4byte_int (bfd *, unsigned int); 9219 *Description* 9220Write a 4 byte integer I to the output BFD ABFD, in big endian order 9221regardless of what else is going on. This is useful in archives. 9222 92232.15.1.2 `bfd_put_size' 9224....................... 9225 92262.15.1.3 `bfd_get_size' 9227....................... 9228 9229*Description* 9230These macros as used for reading and writing raw data in sections; each 9231access (except for bytes) is vectored through the target format of the 9232BFD and mangled accordingly. The mangling performs any necessary endian 9233translations and removes alignment restrictions. Note that types 9234accepted and returned by these macros are identical so they can be 9235swapped around in macros--for example, `libaout.h' defines `GET_WORD' 9236to either `bfd_get_32' or `bfd_get_64'. 9237 9238 In the put routines, VAL must be a `bfd_vma'. If we are on a system 9239without prototypes, the caller is responsible for making sure that is 9240true, with a cast if necessary. We don't cast them in the macro 9241definitions because that would prevent `lint' or `gcc -Wall' from 9242detecting sins such as passing a pointer. To detect calling these with 9243less than a `bfd_vma', use `gcc -Wconversion' on a host with 64 bit 9244`bfd_vma''s. 9245 9246 /* Byte swapping macros for user section data. */ 9247 9248 #define bfd_put_8(abfd, val, ptr) \ 9249 ((void) (*((unsigned char *) (ptr)) = (val) & 0xff)) 9250 #define bfd_put_signed_8 \ 9251 bfd_put_8 9252 #define bfd_get_8(abfd, ptr) \ 9253 (*(const unsigned char *) (ptr) & 0xff) 9254 #define bfd_get_signed_8(abfd, ptr) \ 9255 (((*(const unsigned char *) (ptr) & 0xff) ^ 0x80) - 0x80) 9256 9257 #define bfd_put_16(abfd, val, ptr) \ 9258 BFD_SEND (abfd, bfd_putx16, ((val),(ptr))) 9259 #define bfd_put_signed_16 \ 9260 bfd_put_16 9261 #define bfd_get_16(abfd, ptr) \ 9262 BFD_SEND (abfd, bfd_getx16, (ptr)) 9263 #define bfd_get_signed_16(abfd, ptr) \ 9264 BFD_SEND (abfd, bfd_getx_signed_16, (ptr)) 9265 9266 #define bfd_put_32(abfd, val, ptr) \ 9267 BFD_SEND (abfd, bfd_putx32, ((val),(ptr))) 9268 #define bfd_put_signed_32 \ 9269 bfd_put_32 9270 #define bfd_get_32(abfd, ptr) \ 9271 BFD_SEND (abfd, bfd_getx32, (ptr)) 9272 #define bfd_get_signed_32(abfd, ptr) \ 9273 BFD_SEND (abfd, bfd_getx_signed_32, (ptr)) 9274 9275 #define bfd_put_64(abfd, val, ptr) \ 9276 BFD_SEND (abfd, bfd_putx64, ((val), (ptr))) 9277 #define bfd_put_signed_64 \ 9278 bfd_put_64 9279 #define bfd_get_64(abfd, ptr) \ 9280 BFD_SEND (abfd, bfd_getx64, (ptr)) 9281 #define bfd_get_signed_64(abfd, ptr) \ 9282 BFD_SEND (abfd, bfd_getx_signed_64, (ptr)) 9283 9284 #define bfd_get(bits, abfd, ptr) \ 9285 ((bits) == 8 ? (bfd_vma) bfd_get_8 (abfd, ptr) \ 9286 : (bits) == 16 ? bfd_get_16 (abfd, ptr) \ 9287 : (bits) == 32 ? bfd_get_32 (abfd, ptr) \ 9288 : (bits) == 64 ? bfd_get_64 (abfd, ptr) \ 9289 : (abort (), (bfd_vma) - 1)) 9290 9291 #define bfd_put(bits, abfd, val, ptr) \ 9292 ((bits) == 8 ? bfd_put_8 (abfd, val, ptr) \ 9293 : (bits) == 16 ? bfd_put_16 (abfd, val, ptr) \ 9294 : (bits) == 32 ? bfd_put_32 (abfd, val, ptr) \ 9295 : (bits) == 64 ? bfd_put_64 (abfd, val, ptr) \ 9296 : (abort (), (void) 0)) 9297 92982.15.1.4 `bfd_h_put_size' 9299......................... 9300 9301*Description* 9302These macros have the same function as their `bfd_get_x' brethren, 9303except that they are used for removing information for the header 9304records of object files. Believe it or not, some object files keep 9305their header records in big endian order and their data in little 9306endian order. 9307 9308 /* Byte swapping macros for file header data. */ 9309 9310 #define bfd_h_put_8(abfd, val, ptr) \ 9311 bfd_put_8 (abfd, val, ptr) 9312 #define bfd_h_put_signed_8(abfd, val, ptr) \ 9313 bfd_put_8 (abfd, val, ptr) 9314 #define bfd_h_get_8(abfd, ptr) \ 9315 bfd_get_8 (abfd, ptr) 9316 #define bfd_h_get_signed_8(abfd, ptr) \ 9317 bfd_get_signed_8 (abfd, ptr) 9318 9319 #define bfd_h_put_16(abfd, val, ptr) \ 9320 BFD_SEND (abfd, bfd_h_putx16, (val, ptr)) 9321 #define bfd_h_put_signed_16 \ 9322 bfd_h_put_16 9323 #define bfd_h_get_16(abfd, ptr) \ 9324 BFD_SEND (abfd, bfd_h_getx16, (ptr)) 9325 #define bfd_h_get_signed_16(abfd, ptr) \ 9326 BFD_SEND (abfd, bfd_h_getx_signed_16, (ptr)) 9327 9328 #define bfd_h_put_32(abfd, val, ptr) \ 9329 BFD_SEND (abfd, bfd_h_putx32, (val, ptr)) 9330 #define bfd_h_put_signed_32 \ 9331 bfd_h_put_32 9332 #define bfd_h_get_32(abfd, ptr) \ 9333 BFD_SEND (abfd, bfd_h_getx32, (ptr)) 9334 #define bfd_h_get_signed_32(abfd, ptr) \ 9335 BFD_SEND (abfd, bfd_h_getx_signed_32, (ptr)) 9336 9337 #define bfd_h_put_64(abfd, val, ptr) \ 9338 BFD_SEND (abfd, bfd_h_putx64, (val, ptr)) 9339 #define bfd_h_put_signed_64 \ 9340 bfd_h_put_64 9341 #define bfd_h_get_64(abfd, ptr) \ 9342 BFD_SEND (abfd, bfd_h_getx64, (ptr)) 9343 #define bfd_h_get_signed_64(abfd, ptr) \ 9344 BFD_SEND (abfd, bfd_h_getx_signed_64, (ptr)) 9345 9346 /* Aliases for the above, which should eventually go away. */ 9347 9348 #define H_PUT_64 bfd_h_put_64 9349 #define H_PUT_32 bfd_h_put_32 9350 #define H_PUT_16 bfd_h_put_16 9351 #define H_PUT_8 bfd_h_put_8 9352 #define H_PUT_S64 bfd_h_put_signed_64 9353 #define H_PUT_S32 bfd_h_put_signed_32 9354 #define H_PUT_S16 bfd_h_put_signed_16 9355 #define H_PUT_S8 bfd_h_put_signed_8 9356 #define H_GET_64 bfd_h_get_64 9357 #define H_GET_32 bfd_h_get_32 9358 #define H_GET_16 bfd_h_get_16 9359 #define H_GET_8 bfd_h_get_8 9360 #define H_GET_S64 bfd_h_get_signed_64 9361 #define H_GET_S32 bfd_h_get_signed_32 9362 #define H_GET_S16 bfd_h_get_signed_16 9363 #define H_GET_S8 bfd_h_get_signed_8 9364 93652.15.1.5 `bfd_log2' 9366................... 9367 9368*Synopsis* 9369 unsigned int bfd_log2 (bfd_vma x); 9370 *Description* 9371Return the log base 2 of the value supplied, rounded up. E.g., an X of 93721025 returns 11. A X of 0 returns 0. 9373 9374 9375File: bfd.info, Node: File Caching, Next: Linker Functions, Prev: Internal, Up: BFD front end 9376 93772.16 File caching 9378================= 9379 9380The file caching mechanism is embedded within BFD and allows the 9381application to open as many BFDs as it wants without regard to the 9382underlying operating system's file descriptor limit (often as low as 20 9383open files). The module in `cache.c' maintains a least recently used 9384list of `bfd_cache_max_open' files, and exports the name 9385`bfd_cache_lookup', which runs around and makes sure that the required 9386BFD is open. If not, then it chooses a file to close, closes it and 9387opens the one wanted, returning its file handle. 9388 93892.16.1 Caching functions 9390------------------------ 9391 93922.16.1.1 `bfd_cache_init' 9393......................... 9394 9395*Synopsis* 9396 bfd_boolean bfd_cache_init (bfd *abfd); 9397 *Description* 9398Add a newly opened BFD to the cache. 9399 94002.16.1.2 `bfd_cache_close' 9401.......................... 9402 9403*Synopsis* 9404 bfd_boolean bfd_cache_close (bfd *abfd); 9405 *Description* 9406Remove the BFD ABFD from the cache. If the attached file is open, then 9407close it too. 9408 9409 *Returns* 9410`FALSE' is returned if closing the file fails, `TRUE' is returned if 9411all is well. 9412 94132.16.1.3 `bfd_cache_close_all' 9414.............................. 9415 9416*Synopsis* 9417 bfd_boolean bfd_cache_close_all (void); 9418 *Description* 9419Remove all BFDs from the cache. If the attached file is open, then 9420close it too. 9421 9422 *Returns* 9423`FALSE' is returned if closing one of the file fails, `TRUE' is 9424returned if all is well. 9425 94262.16.1.4 `bfd_open_file' 9427........................ 9428 9429*Synopsis* 9430 FILE* bfd_open_file (bfd *abfd); 9431 *Description* 9432Call the OS to open a file for ABFD. Return the `FILE *' (possibly 9433`NULL') that results from this operation. Set up the BFD so that 9434future accesses know the file is open. If the `FILE *' returned is 9435`NULL', then it won't have been put in the cache, so it won't have to 9436be removed from it. 9437 9438 9439File: bfd.info, Node: Linker Functions, Next: Hash Tables, Prev: File Caching, Up: BFD front end 9440 94412.17 Linker Functions 9442===================== 9443 9444The linker uses three special entry points in the BFD target vector. 9445It is not necessary to write special routines for these entry points 9446when creating a new BFD back end, since generic versions are provided. 9447However, writing them can speed up linking and make it use 9448significantly less runtime memory. 9449 9450 The first routine creates a hash table used by the other routines. 9451The second routine adds the symbols from an object file to the hash 9452table. The third routine takes all the object files and links them 9453together to create the output file. These routines are designed so 9454that the linker proper does not need to know anything about the symbols 9455in the object files that it is linking. The linker merely arranges the 9456sections as directed by the linker script and lets BFD handle the 9457details of symbols and relocs. 9458 9459 The second routine and third routines are passed a pointer to a 9460`struct bfd_link_info' structure (defined in `bfdlink.h') which holds 9461information relevant to the link, including the linker hash table 9462(which was created by the first routine) and a set of callback 9463functions to the linker proper. 9464 9465 The generic linker routines are in `linker.c', and use the header 9466file `genlink.h'. As of this writing, the only back ends which have 9467implemented versions of these routines are a.out (in `aoutx.h') and 9468ECOFF (in `ecoff.c'). The a.out routines are used as examples 9469throughout this section. 9470 9471* Menu: 9472 9473* Creating a Linker Hash Table:: 9474* Adding Symbols to the Hash Table:: 9475* Performing the Final Link:: 9476 9477 9478File: bfd.info, Node: Creating a Linker Hash Table, Next: Adding Symbols to the Hash Table, Prev: Linker Functions, Up: Linker Functions 9479 94802.17.1 Creating a linker hash table 9481----------------------------------- 9482 9483The linker routines must create a hash table, which must be derived 9484from `struct bfd_link_hash_table' described in `bfdlink.c'. *Note Hash 9485Tables::, for information on how to create a derived hash table. This 9486entry point is called using the target vector of the linker output file. 9487 9488 The `_bfd_link_hash_table_create' entry point must allocate and 9489initialize an instance of the desired hash table. If the back end does 9490not require any additional information to be stored with the entries in 9491the hash table, the entry point may simply create a `struct 9492bfd_link_hash_table'. Most likely, however, some additional 9493information will be needed. 9494 9495 For example, with each entry in the hash table the a.out linker 9496keeps the index the symbol has in the final output file (this index 9497number is used so that when doing a relocatable link the symbol index 9498used in the output file can be quickly filled in when copying over a 9499reloc). The a.out linker code defines the required structures and 9500functions for a hash table derived from `struct bfd_link_hash_table'. 9501The a.out linker hash table is created by the function 9502`NAME(aout,link_hash_table_create)'; it simply allocates space for the 9503hash table, initializes it, and returns a pointer to it. 9504 9505 When writing the linker routines for a new back end, you will 9506generally not know exactly which fields will be required until you have 9507finished. You should simply create a new hash table which defines no 9508additional fields, and then simply add fields as they become necessary. 9509 9510 9511File: bfd.info, Node: Adding Symbols to the Hash Table, Next: Performing the Final Link, Prev: Creating a Linker Hash Table, Up: Linker Functions 9512 95132.17.2 Adding symbols to the hash table 9514--------------------------------------- 9515 9516The linker proper will call the `_bfd_link_add_symbols' entry point for 9517each object file or archive which is to be linked (typically these are 9518the files named on the command line, but some may also come from the 9519linker script). The entry point is responsible for examining the file. 9520For an object file, BFD must add any relevant symbol information to 9521the hash table. For an archive, BFD must determine which elements of 9522the archive should be used and adding them to the link. 9523 9524 The a.out version of this entry point is 9525`NAME(aout,link_add_symbols)'. 9526 9527* Menu: 9528 9529* Differing file formats:: 9530* Adding symbols from an object file:: 9531* Adding symbols from an archive:: 9532 9533 9534File: 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 9535 95362.17.2.1 Differing file formats 9537............................... 9538 9539Normally all the files involved in a link will be of the same format, 9540but it is also possible to link together different format object files, 9541and the back end must support that. The `_bfd_link_add_symbols' entry 9542point is called via the target vector of the file to be added. This 9543has an important consequence: the function may not assume that the hash 9544table is the type created by the corresponding 9545`_bfd_link_hash_table_create' vector. All the `_bfd_link_add_symbols' 9546function can assume about the hash table is that it is derived from 9547`struct bfd_link_hash_table'. 9548 9549 Sometimes the `_bfd_link_add_symbols' function must store some 9550information in the hash table entry to be used by the `_bfd_final_link' 9551function. In such a case the output bfd xvec must be checked to make 9552sure that the hash table was created by an object file of the same 9553format. 9554 9555 The `_bfd_final_link' routine must be prepared to handle a hash 9556entry without any extra information added by the 9557`_bfd_link_add_symbols' function. A hash entry without extra 9558information will also occur when the linker script directs the linker 9559to create a symbol. Note that, regardless of how a hash table entry is 9560added, all the fields will be initialized to some sort of null value by 9561the hash table entry initialization function. 9562 9563 See `ecoff_link_add_externals' for an example of how to check the 9564output bfd before saving information (in this case, the ECOFF external 9565symbol debugging information) in a hash table entry. 9566 9567 9568File: 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 9569 95702.17.2.2 Adding symbols from an object file 9571........................................... 9572 9573When the `_bfd_link_add_symbols' routine is passed an object file, it 9574must add all externally visible symbols in that object file to the hash 9575table. The actual work of adding the symbol to the hash table is 9576normally handled by the function `_bfd_generic_link_add_one_symbol'. 9577The `_bfd_link_add_symbols' routine is responsible for reading all the 9578symbols from the object file and passing the correct information to 9579`_bfd_generic_link_add_one_symbol'. 9580 9581 The `_bfd_link_add_symbols' routine should not use 9582`bfd_canonicalize_symtab' to read the symbols. The point of providing 9583this routine is to avoid the overhead of converting the symbols into 9584generic `asymbol' structures. 9585 9586 `_bfd_generic_link_add_one_symbol' handles the details of combining 9587common symbols, warning about multiple definitions, and so forth. It 9588takes arguments which describe the symbol to add, notably symbol flags, 9589a section, and an offset. The symbol flags include such things as 9590`BSF_WEAK' or `BSF_INDIRECT'. The section is a section in the object 9591file, or something like `bfd_und_section_ptr' for an undefined symbol 9592or `bfd_com_section_ptr' for a common symbol. 9593 9594 If the `_bfd_final_link' routine is also going to need to read the 9595symbol information, the `_bfd_link_add_symbols' routine should save it 9596somewhere attached to the object file BFD. However, the information 9597should only be saved if the `keep_memory' field of the `info' argument 9598is TRUE, so that the `-no-keep-memory' linker switch is effective. 9599 9600 The a.out function which adds symbols from an object file is 9601`aout_link_add_object_symbols', and most of the interesting work is in 9602`aout_link_add_symbols'. The latter saves pointers to the hash tables 9603entries created by `_bfd_generic_link_add_one_symbol' indexed by symbol 9604number, so that the `_bfd_final_link' routine does not have to call the 9605hash table lookup routine to locate the entry. 9606 9607 9608File: bfd.info, Node: Adding symbols from an archive, Prev: Adding symbols from an object file, Up: Adding Symbols to the Hash Table 9609 96102.17.2.3 Adding symbols from an archive 9611....................................... 9612 9613When the `_bfd_link_add_symbols' routine is passed an archive, it must 9614look through the symbols defined by the archive and decide which 9615elements of the archive should be included in the link. For each such 9616element it must call the `add_archive_element' linker callback, and it 9617must add the symbols from the object file to the linker hash table. 9618(The callback may in fact indicate that a replacement BFD should be 9619used, in which case the symbols from that BFD should be added to the 9620linker hash table instead.) 9621 9622 In most cases the work of looking through the symbols in the archive 9623should be done by the `_bfd_generic_link_add_archive_symbols' function. 9624`_bfd_generic_link_add_archive_symbols' is passed a function to call to 9625make the final decision about adding an archive element to the link and 9626to do the actual work of adding the symbols to the linker hash table. 9627If the element is to be included, the `add_archive_element' linker 9628callback routine must be called with the element as an argument, and 9629the element's symbols must be added to the linker hash table just as 9630though the element had itself been passed to the 9631`_bfd_link_add_symbols' function. 9632 9633 When the a.out `_bfd_link_add_symbols' function receives an archive, 9634it calls `_bfd_generic_link_add_archive_symbols' passing 9635`aout_link_check_archive_element' as the function argument. 9636`aout_link_check_archive_element' calls `aout_link_check_ar_symbols'. 9637If the latter decides to add the element (an element is only added if 9638it provides a real, non-common, definition for a previously undefined 9639or common symbol) it calls the `add_archive_element' callback and then 9640`aout_link_check_archive_element' calls `aout_link_add_symbols' to 9641actually add the symbols to the linker hash table - possibly those of a 9642substitute BFD, if the `add_archive_element' callback avails itself of 9643that option. 9644 9645 The ECOFF back end is unusual in that it does not normally call 9646`_bfd_generic_link_add_archive_symbols', because ECOFF archives already 9647contain a hash table of symbols. The ECOFF back end searches the 9648archive itself to avoid the overhead of creating a new hash table. 9649 9650 9651File: bfd.info, Node: Performing the Final Link, Prev: Adding Symbols to the Hash Table, Up: Linker Functions 9652 96532.17.3 Performing the final link 9654-------------------------------- 9655 9656When all the input files have been processed, the linker calls the 9657`_bfd_final_link' entry point of the output BFD. This routine is 9658responsible for producing the final output file, which has several 9659aspects. It must relocate the contents of the input sections and copy 9660the data into the output sections. It must build an output symbol 9661table including any local symbols from the input files and the global 9662symbols from the hash table. When producing relocatable output, it must 9663modify the input relocs and write them into the output file. There may 9664also be object format dependent work to be done. 9665 9666 The linker will also call the `write_object_contents' entry point 9667when the BFD is closed. The two entry points must work together in 9668order to produce the correct output file. 9669 9670 The details of how this works are inevitably dependent upon the 9671specific object file format. The a.out `_bfd_final_link' routine is 9672`NAME(aout,final_link)'. 9673 9674* Menu: 9675 9676* Information provided by the linker:: 9677* Relocating the section contents:: 9678* Writing the symbol table:: 9679 9680 9681File: bfd.info, Node: Information provided by the linker, Next: Relocating the section contents, Prev: Performing the Final Link, Up: Performing the Final Link 9682 96832.17.3.1 Information provided by the linker 9684........................................... 9685 9686Before the linker calls the `_bfd_final_link' entry point, it sets up 9687some data structures for the function to use. 9688 9689 The `input_bfds' field of the `bfd_link_info' structure will point 9690to a list of all the input files included in the link. These files are 9691linked through the `link.next' field of the `bfd' structure. 9692 9693 Each section in the output file will have a list of `link_order' 9694structures attached to the `map_head.link_order' field (the 9695`link_order' structure is defined in `bfdlink.h'). These structures 9696describe how to create the contents of the output section in terms of 9697the contents of various input sections, fill constants, and, 9698eventually, other types of information. They also describe relocs that 9699must be created by the BFD backend, but do not correspond to any input 9700file; this is used to support -Ur, which builds constructors while 9701generating a relocatable object file. 9702 9703 9704File: bfd.info, Node: Relocating the section contents, Next: Writing the symbol table, Prev: Information provided by the linker, Up: Performing the Final Link 9705 97062.17.3.2 Relocating the section contents 9707........................................ 9708 9709The `_bfd_final_link' function should look through the `link_order' 9710structures attached to each section of the output file. Each 9711`link_order' structure should either be handled specially, or it should 9712be passed to the function `_bfd_default_link_order' which will do the 9713right thing (`_bfd_default_link_order' is defined in `linker.c'). 9714 9715 For efficiency, a `link_order' of type `bfd_indirect_link_order' 9716whose associated section belongs to a BFD of the same format as the 9717output BFD must be handled specially. This type of `link_order' 9718describes part of an output section in terms of a section belonging to 9719one of the input files. The `_bfd_final_link' function should read the 9720contents of the section and any associated relocs, apply the relocs to 9721the section contents, and write out the modified section contents. If 9722performing a relocatable link, the relocs themselves must also be 9723modified and written out. 9724 9725 The functions `_bfd_relocate_contents' and 9726`_bfd_final_link_relocate' provide some general support for performing 9727the actual relocations, notably overflow checking. Their arguments 9728include information about the symbol the relocation is against and a 9729`reloc_howto_type' argument which describes the relocation to perform. 9730These functions are defined in `reloc.c'. 9731 9732 The a.out function which handles reading, relocating, and writing 9733section contents is `aout_link_input_section'. The actual relocation 9734is done in `aout_link_input_section_std' and 9735`aout_link_input_section_ext'. 9736 9737 9738File: bfd.info, Node: Writing the symbol table, Prev: Relocating the section contents, Up: Performing the Final Link 9739 97402.17.3.3 Writing the symbol table 9741................................. 9742 9743The `_bfd_final_link' function must gather all the symbols in the input 9744files and write them out. It must also write out all the symbols in 9745the global hash table. This must be controlled by the `strip' and 9746`discard' fields of the `bfd_link_info' structure. 9747 9748 The local symbols of the input files will not have been entered into 9749the linker hash table. The `_bfd_final_link' routine must consider 9750each input file and include the symbols in the output file. It may be 9751convenient to do this when looking through the `link_order' structures, 9752or it may be done by stepping through the `input_bfds' list. 9753 9754 The `_bfd_final_link' routine must also traverse the global hash 9755table to gather all the externally visible symbols. It is possible 9756that most of the externally visible symbols may be written out when 9757considering the symbols of each input file, but it is still necessary 9758to traverse the hash table since the linker script may have defined 9759some symbols that are not in any of the input files. 9760 9761 The `strip' field of the `bfd_link_info' structure controls which 9762symbols are written out. The possible values are listed in 9763`bfdlink.h'. If the value is `strip_some', then the `keep_hash' field 9764of the `bfd_link_info' structure is a hash table of symbols to keep; 9765each symbol should be looked up in this hash table, and only symbols 9766which are present should be included in the output file. 9767 9768 If the `strip' field of the `bfd_link_info' structure permits local 9769symbols to be written out, the `discard' field is used to further 9770controls which local symbols are included in the output file. If the 9771value is `discard_l', then all local symbols which begin with a certain 9772prefix are discarded; this is controlled by the 9773`bfd_is_local_label_name' entry point. 9774 9775 The a.out backend handles symbols by calling 9776`aout_link_write_symbols' on each input BFD and then traversing the 9777global hash table with the function `aout_link_write_other_symbol'. It 9778builds a string table while writing out the symbols, which is written 9779to the output file at the end of `NAME(aout,final_link)'. 9780 97812.17.3.4 `bfd_link_split_section' 9782................................. 9783 9784*Synopsis* 9785 bfd_boolean bfd_link_split_section (bfd *abfd, asection *sec); 9786 *Description* 9787Return nonzero if SEC should be split during a reloceatable or final 9788link. 9789 #define bfd_link_split_section(abfd, sec) \ 9790 BFD_SEND (abfd, _bfd_link_split_section, (abfd, sec)) 9791 97922.17.3.5 `bfd_section_already_linked' 9793..................................... 9794 9795*Synopsis* 9796 bfd_boolean bfd_section_already_linked (bfd *abfd, 9797 asection *sec, 9798 struct bfd_link_info *info); 9799 *Description* 9800Check if DATA has been already linked during a reloceatable or final 9801link. Return TRUE if it has. 9802 #define bfd_section_already_linked(abfd, sec, info) \ 9803 BFD_SEND (abfd, _section_already_linked, (abfd, sec, info)) 9804 98052.17.3.6 `bfd_generic_define_common_symbol' 9806........................................... 9807 9808*Synopsis* 9809 bfd_boolean bfd_generic_define_common_symbol 9810 (bfd *output_bfd, struct bfd_link_info *info, 9811 struct bfd_link_hash_entry *h); 9812 *Description* 9813Convert common symbol H into a defined symbol. Return TRUE on success 9814and FALSE on failure. 9815 #define bfd_define_common_symbol(output_bfd, info, h) \ 9816 BFD_SEND (output_bfd, _bfd_define_common_symbol, (output_bfd, info, h)) 9817 98182.17.3.7 `bfd_find_version_for_sym' 9819................................... 9820 9821*Synopsis* 9822 struct bfd_elf_version_tree * bfd_find_version_for_sym 9823 (struct bfd_elf_version_tree *verdefs, 9824 const char *sym_name, bfd_boolean *hide); 9825 *Description* 9826Search an elf version script tree for symbol versioning info and export 9827/ don't-export status for a given symbol. Return non-NULL on success 9828and NULL on failure; also sets the output `hide' boolean parameter. 9829 98302.17.3.8 `bfd_hide_sym_by_version' 9831.................................. 9832 9833*Synopsis* 9834 bfd_boolean bfd_hide_sym_by_version 9835 (struct bfd_elf_version_tree *verdefs, const char *sym_name); 9836 *Description* 9837Search an elf version script tree for symbol versioning info for a 9838given symbol. Return TRUE if the symbol is hidden. 9839 98402.17.3.9 `bfd_link_check_relocs' 9841................................ 9842 9843*Synopsis* 9844 bfd_boolean bfd_link_check_relocs 9845 (bfd *abfd, struct bfd_link_info *info); 9846 *Description* 9847Checks the relocs in ABFD for validity. Does not execute the relocs. 9848Return TRUE if everything is OK, FALSE otherwise. This is the external 9849entry point to this code. 9850 98512.17.3.10 `_bfd_generic_link_check_relocs' 9852.......................................... 9853 9854*Synopsis* 9855 bfd_boolean _bfd_generic_link_check_relocs 9856 (bfd *abfd, struct bfd_link_info *info); 9857 *Description* 9858Stub function for targets that do not implement reloc checking. Return 9859TRUE. This is an internal function. It should not be called from 9860outside the BFD library. 9861 98622.17.3.11 `bfd_merge_private_bfd_data' 9863...................................... 9864 9865*Synopsis* 9866 bfd_boolean bfd_merge_private_bfd_data 9867 (bfd *ibfd, struct bfd_link_info *info); 9868 *Description* 9869Merge private BFD information from the BFD IBFD to the the output file 9870BFD when linking. Return `TRUE' on success, `FALSE' on error. 9871Possible error returns are: 9872 9873 * `bfd_error_no_memory' - Not enough memory exists to create private 9874 data for OBFD. 9875 9876 #define bfd_merge_private_bfd_data(ibfd, info) \ 9877 BFD_SEND ((info)->output_bfd, _bfd_merge_private_bfd_data, \ 9878 (ibfd, info)) 9879 98802.17.3.12 `_bfd_generic_verify_endian_match' 9881............................................ 9882 9883*Synopsis* 9884 bfd_boolean _bfd_generic_verify_endian_match 9885 (bfd *ibfd, struct bfd_link_info *info); 9886 *Description* 9887Can be used from / for bfd_merge_private_bfd_data to check that 9888endianness matches between input and output file. Returns TRUE for a 9889match, otherwise returns FALSE and emits an error. 9890 9891 9892File: bfd.info, Node: Hash Tables, Prev: Linker Functions, Up: BFD front end 9893 98942.18 Hash Tables 9895================ 9896 9897BFD provides a simple set of hash table functions. Routines are 9898provided to initialize a hash table, to free a hash table, to look up a 9899string in a hash table and optionally create an entry for it, and to 9900traverse a hash table. There is currently no routine to delete an 9901string from a hash table. 9902 9903 The basic hash table does not permit any data to be stored with a 9904string. However, a hash table is designed to present a base class from 9905which other types of hash tables may be derived. These derived types 9906may store additional information with the string. Hash tables were 9907implemented in this way, rather than simply providing a data pointer in 9908a hash table entry, because they were designed for use by the linker 9909back ends. The linker may create thousands of hash table entries, and 9910the overhead of allocating private data and storing and following 9911pointers becomes noticeable. 9912 9913 The basic hash table code is in `hash.c'. 9914 9915* Menu: 9916 9917* Creating and Freeing a Hash Table:: 9918* Looking Up or Entering a String:: 9919* Traversing a Hash Table:: 9920* Deriving a New Hash Table Type:: 9921 9922 9923File: bfd.info, Node: Creating and Freeing a Hash Table, Next: Looking Up or Entering a String, Prev: Hash Tables, Up: Hash Tables 9924 99252.18.1 Creating and freeing a hash table 9926---------------------------------------- 9927 9928To create a hash table, create an instance of a `struct bfd_hash_table' 9929(defined in `bfd.h') and call `bfd_hash_table_init' (if you know 9930approximately how many entries you will need, the function 9931`bfd_hash_table_init_n', which takes a SIZE argument, may be used). 9932`bfd_hash_table_init' returns `FALSE' if some sort of error occurs. 9933 9934 The function `bfd_hash_table_init' take as an argument a function to 9935use to create new entries. For a basic hash table, use the function 9936`bfd_hash_newfunc'. *Note Deriving a New Hash Table Type::, for why 9937you would want to use a different value for this argument. 9938 9939 `bfd_hash_table_init' will create an objalloc which will be used to 9940allocate new entries. You may allocate memory on this objalloc using 9941`bfd_hash_allocate'. 9942 9943 Use `bfd_hash_table_free' to free up all the memory that has been 9944allocated for a hash table. This will not free up the `struct 9945bfd_hash_table' itself, which you must provide. 9946 9947 Use `bfd_hash_set_default_size' to set the default size of hash 9948table to use. 9949 9950 9951File: bfd.info, Node: Looking Up or Entering a String, Next: Traversing a Hash Table, Prev: Creating and Freeing a Hash Table, Up: Hash Tables 9952 99532.18.2 Looking up or entering a string 9954-------------------------------------- 9955 9956The function `bfd_hash_lookup' is used both to look up a string in the 9957hash table and to create a new entry. 9958 9959 If the CREATE argument is `FALSE', `bfd_hash_lookup' will look up a 9960string. If the string is found, it will returns a pointer to a `struct 9961bfd_hash_entry'. If the string is not found in the table 9962`bfd_hash_lookup' will return `NULL'. You should not modify any of the 9963fields in the returns `struct bfd_hash_entry'. 9964 9965 If the CREATE argument is `TRUE', the string will be entered into 9966the hash table if it is not already there. Either way a pointer to a 9967`struct bfd_hash_entry' will be returned, either to the existing 9968structure or to a newly created one. In this case, a `NULL' return 9969means that an error occurred. 9970 9971 If the CREATE argument is `TRUE', and a new entry is created, the 9972COPY argument is used to decide whether to copy the string onto the 9973hash table objalloc or not. If COPY is passed as `FALSE', you must be 9974careful not to deallocate or modify the string as long as the hash table 9975exists. 9976 9977 9978File: bfd.info, Node: Traversing a Hash Table, Next: Deriving a New Hash Table Type, Prev: Looking Up or Entering a String, Up: Hash Tables 9979 99802.18.3 Traversing a hash table 9981------------------------------ 9982 9983The function `bfd_hash_traverse' may be used to traverse a hash table, 9984calling a function on each element. The traversal is done in a random 9985order. 9986 9987 `bfd_hash_traverse' takes as arguments a function and a generic 9988`void *' pointer. The function is called with a hash table entry (a 9989`struct bfd_hash_entry *') and the generic pointer passed to 9990`bfd_hash_traverse'. The function must return a `boolean' value, which 9991indicates whether to continue traversing the hash table. If the 9992function returns `FALSE', `bfd_hash_traverse' will stop the traversal 9993and return immediately. 9994 9995 9996File: bfd.info, Node: Deriving a New Hash Table Type, Prev: Traversing a Hash Table, Up: Hash Tables 9997 99982.18.4 Deriving a new hash table type 9999------------------------------------- 10000 10001Many uses of hash tables want to store additional information which 10002each entry in the hash table. Some also find it convenient to store 10003additional information with the hash table itself. This may be done 10004using a derived hash table. 10005 10006 Since C is not an object oriented language, creating a derived hash 10007table requires sticking together some boilerplate routines with a few 10008differences specific to the type of hash table you want to create. 10009 10010 An example of a derived hash table is the linker hash table. The 10011structures for this are defined in `bfdlink.h'. The functions are in 10012`linker.c'. 10013 10014 You may also derive a hash table from an already derived hash table. 10015For example, the a.out linker backend code uses a hash table derived 10016from the linker hash table. 10017 10018* Menu: 10019 10020* Define the Derived Structures:: 10021* Write the Derived Creation Routine:: 10022* Write Other Derived Routines:: 10023 10024 10025File: 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 10026 100272.18.4.1 Define the derived structures 10028...................................... 10029 10030You must define a structure for an entry in the hash table, and a 10031structure for the hash table itself. 10032 10033 The first field in the structure for an entry in the hash table must 10034be of the type used for an entry in the hash table you are deriving 10035from. If you are deriving from a basic hash table this is `struct 10036bfd_hash_entry', which is defined in `bfd.h'. The first field in the 10037structure for the hash table itself must be of the type of the hash 10038table you are deriving from itself. If you are deriving from a basic 10039hash table, this is `struct bfd_hash_table'. 10040 10041 For example, the linker hash table defines `struct 10042bfd_link_hash_entry' (in `bfdlink.h'). The first field, `root', is of 10043type `struct bfd_hash_entry'. Similarly, the first field in `struct 10044bfd_link_hash_table', `table', is of type `struct bfd_hash_table'. 10045 10046 10047File: 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 10048 100492.18.4.2 Write the derived creation routine 10050........................................... 10051 10052You must write a routine which will create and initialize an entry in 10053the hash table. This routine is passed as the function argument to 10054`bfd_hash_table_init'. 10055 10056 In order to permit other hash tables to be derived from the hash 10057table you are creating, this routine must be written in a standard way. 10058 10059 The first argument to the creation routine is a pointer to a hash 10060table entry. This may be `NULL', in which case the routine should 10061allocate the right amount of space. Otherwise the space has already 10062been allocated by a hash table type derived from this one. 10063 10064 After allocating space, the creation routine must call the creation 10065routine of the hash table type it is derived from, passing in a pointer 10066to the space it just allocated. This will initialize any fields used 10067by the base hash table. 10068 10069 Finally the creation routine must initialize any local fields for 10070the new hash table type. 10071 10072 Here is a boilerplate example of a creation routine. FUNCTION_NAME 10073is the name of the routine. ENTRY_TYPE is the type of an entry in the 10074hash table you are creating. BASE_NEWFUNC is the name of the creation 10075routine of the hash table type your hash table is derived from. 10076 10077 struct bfd_hash_entry * 10078 FUNCTION_NAME (struct bfd_hash_entry *entry, 10079 struct bfd_hash_table *table, 10080 const char *string) 10081 { 10082 struct ENTRY_TYPE *ret = (ENTRY_TYPE *) entry; 10083 10084 /* Allocate the structure if it has not already been allocated by a 10085 derived class. */ 10086 if (ret == NULL) 10087 { 10088 ret = bfd_hash_allocate (table, sizeof (* ret)); 10089 if (ret == NULL) 10090 return NULL; 10091 } 10092 10093 /* Call the allocation method of the base class. */ 10094 ret = ((ENTRY_TYPE *) 10095 BASE_NEWFUNC ((struct bfd_hash_entry *) ret, table, string)); 10096 10097 /* Initialize the local fields here. */ 10098 10099 return (struct bfd_hash_entry *) ret; 10100 } 10101 *Description* 10102The creation routine for the linker hash table, which is in `linker.c', 10103looks just like this example. FUNCTION_NAME is 10104`_bfd_link_hash_newfunc'. ENTRY_TYPE is `struct bfd_link_hash_entry'. 10105BASE_NEWFUNC is `bfd_hash_newfunc', the creation routine for a basic 10106hash table. 10107 10108 `_bfd_link_hash_newfunc' also initializes the local fields in a 10109linker hash table entry: `type', `written' and `next'. 10110 10111 10112File: bfd.info, Node: Write Other Derived Routines, Prev: Write the Derived Creation Routine, Up: Deriving a New Hash Table Type 10113 101142.18.4.3 Write other derived routines 10115..................................... 10116 10117You will want to write other routines for your new hash table, as well. 10118 10119 You will want an initialization routine which calls the 10120initialization routine of the hash table you are deriving from and 10121initializes any other local fields. For the linker hash table, this is 10122`_bfd_link_hash_table_init' in `linker.c'. 10123 10124 You will want a lookup routine which calls the lookup routine of the 10125hash table you are deriving from and casts the result. The linker hash 10126table uses `bfd_link_hash_lookup' in `linker.c' (this actually takes an 10127additional argument which it uses to decide how to return the looked up 10128value). 10129 10130 You may want a traversal routine. This should just call the 10131traversal routine of the hash table you are deriving from with 10132appropriate casts. The linker hash table uses `bfd_link_hash_traverse' 10133in `linker.c'. 10134 10135 These routines may simply be defined as macros. For example, the 10136a.out backend linker hash table, which is derived from the linker hash 10137table, uses macros for the lookup and traversal routines. These are 10138`aout_link_hash_lookup' and `aout_link_hash_traverse' in aoutx.h. 10139 10140 10141File: bfd.info, Node: BFD back ends, Next: GNU Free Documentation License, Prev: BFD front end, Up: Top 10142 101433 BFD back ends 10144*************** 10145 10146* Menu: 10147 10148* What to Put Where:: 10149* aout :: a.out backends 10150* coff :: coff backends 10151* elf :: elf backends 10152* mmo :: mmo backend 10153 10154 10155File: bfd.info, Node: What to Put Where, Next: aout, Prev: BFD back ends, Up: BFD back ends 10156 101573.1 What to Put Where 10158===================== 10159 10160All of BFD lives in one directory. 10161 10162 10163File: bfd.info, Node: aout, Next: coff, Prev: What to Put Where, Up: BFD back ends 10164 101653.2 a.out backends 10166================== 10167 10168*Description* 10169BFD supports a number of different flavours of a.out format, though the 10170major differences are only the sizes of the structures on disk, and the 10171shape of the relocation information. 10172 10173 The support is split into a basic support file `aoutx.h' and other 10174files which derive functions from the base. One derivation file is 10175`aoutf1.h' (for a.out flavour 1), and adds to the basic a.out functions 10176support for sun3, sun4, 386 and 29k a.out files, to create a target 10177jump vector for a specific target. 10178 10179 This information is further split out into more specific files for 10180each machine, including `sunos.c' for sun3 and sun4, `newsos3.c' for 10181the Sony NEWS, and `demo64.c' for a demonstration of a 64 bit a.out 10182format. 10183 10184 The base file `aoutx.h' defines general mechanisms for reading and 10185writing records to and from disk and various other methods which BFD 10186requires. It is included by `aout32.c' and `aout64.c' to form the names 10187`aout_32_swap_exec_header_in', `aout_64_swap_exec_header_in', etc. 10188 10189 As an example, this is what goes on to make the back end for a sun4, 10190from `aout32.c': 10191 10192 #define ARCH_SIZE 32 10193 #include "aoutx.h" 10194 10195 Which exports names: 10196 10197 ... 10198 aout_32_canonicalize_reloc 10199 aout_32_find_nearest_line 10200 aout_32_get_lineno 10201 aout_32_get_reloc_upper_bound 10202 ... 10203 10204 from `sunos.c': 10205 10206 #define TARGET_NAME "a.out-sunos-big" 10207 #define VECNAME sparc_aout_sunos_be_vec 10208 #include "aoutf1.h" 10209 10210 requires all the names from `aout32.c', and produces the jump vector 10211 10212 sparc_aout_sunos_be_vec 10213 10214 The file `host-aout.c' is a special case. It is for a large set of 10215hosts that use "more or less standard" a.out files, and for which 10216cross-debugging is not interesting. It uses the standard 32-bit a.out 10217support routines, but determines the file offsets and addresses of the 10218text, data, and BSS sections, the machine architecture and machine 10219type, and the entry point address, in a host-dependent manner. Once 10220these values have been determined, generic code is used to handle the 10221object file. 10222 10223 When porting it to run on a new system, you must supply: 10224 10225 HOST_PAGE_SIZE 10226 HOST_SEGMENT_SIZE 10227 HOST_MACHINE_ARCH (optional) 10228 HOST_MACHINE_MACHINE (optional) 10229 HOST_TEXT_START_ADDR 10230 HOST_STACK_END_ADDR 10231 10232 in the file `../include/sys/h-XXX.h' (for your host). These values, 10233plus the structures and macros defined in `a.out.h' on your host 10234system, will produce a BFD target that will access ordinary a.out files 10235on your host. To configure a new machine to use `host-aout.c', specify: 10236 10237 TDEFAULTS = -DDEFAULT_VECTOR=host_aout_big_vec 10238 TDEPFILES= host-aout.o trad-core.o 10239 10240 in the `config/XXX.mt' file, and modify `configure.ac' to use the 10241`XXX.mt' file (by setting "`bfd_target=XXX'") when your configuration 10242is selected. 10243 102443.2.1 Relocations 10245----------------- 10246 10247*Description* 10248The file `aoutx.h' provides for both the _standard_ and _extended_ 10249forms of a.out relocation records. 10250 10251 The standard records contain only an address, a symbol index, and a 10252type field. The extended records (used on 29ks and sparcs) also have a 10253full integer for an addend. 10254 102553.2.2 Internal entry points 10256--------------------------- 10257 10258*Description* 10259`aoutx.h' exports several routines for accessing the contents of an 10260a.out file, which are gathered and exported in turn by various format 10261specific files (eg sunos.c). 10262 102633.2.2.1 `aout_SIZE_swap_exec_header_in' 10264....................................... 10265 10266*Synopsis* 10267 void aout_SIZE_swap_exec_header_in, 10268 (bfd *abfd, 10269 struct external_exec *bytes, 10270 struct internal_exec *execp); 10271 *Description* 10272Swap the information in an executable header RAW_BYTES taken from a raw 10273byte stream memory image into the internal exec header structure EXECP. 10274 102753.2.2.2 `aout_SIZE_swap_exec_header_out' 10276........................................ 10277 10278*Synopsis* 10279 void aout_SIZE_swap_exec_header_out 10280 (bfd *abfd, 10281 struct internal_exec *execp, 10282 struct external_exec *raw_bytes); 10283 *Description* 10284Swap the information in an internal exec header structure EXECP into 10285the buffer RAW_BYTES ready for writing to disk. 10286 102873.2.2.3 `aout_SIZE_some_aout_object_p' 10288...................................... 10289 10290*Synopsis* 10291 const bfd_target *aout_SIZE_some_aout_object_p 10292 (bfd *abfd, 10293 struct internal_exec *execp, 10294 const bfd_target *(*callback_to_real_object_p) (bfd *)); 10295 *Description* 10296Some a.out variant thinks that the file open in ABFD checking is an 10297a.out file. Do some more checking, and set up for access if it really 10298is. Call back to the calling environment's "finish up" function just 10299before returning, to handle any last-minute setup. 10300 103013.2.2.4 `aout_SIZE_mkobject' 10302............................ 10303 10304*Synopsis* 10305 bfd_boolean aout_SIZE_mkobject, (bfd *abfd); 10306 *Description* 10307Initialize BFD ABFD for use with a.out files. 10308 103093.2.2.5 `aout_SIZE_machine_type' 10310................................ 10311 10312*Synopsis* 10313 enum machine_type aout_SIZE_machine_type 10314 (enum bfd_architecture arch, 10315 unsigned long machine, 10316 bfd_boolean *unknown); 10317 *Description* 10318Keep track of machine architecture and machine type for a.out's. Return 10319the `machine_type' for a particular architecture and machine, or 10320`M_UNKNOWN' if that exact architecture and machine can't be represented 10321in a.out format. 10322 10323 If the architecture is understood, machine type 0 (default) is 10324always understood. 10325 103263.2.2.6 `aout_SIZE_set_arch_mach' 10327................................. 10328 10329*Synopsis* 10330 bfd_boolean aout_SIZE_set_arch_mach, 10331 (bfd *, 10332 enum bfd_architecture arch, 10333 unsigned long machine); 10334 *Description* 10335Set the architecture and the machine of the BFD ABFD to the values ARCH 10336and MACHINE. Verify that ABFD's format can support the architecture 10337required. 10338 103393.2.2.7 `aout_SIZE_new_section_hook' 10340.................................... 10341 10342*Synopsis* 10343 bfd_boolean aout_SIZE_new_section_hook, 10344 (bfd *abfd, 10345 asection *newsect); 10346 *Description* 10347Called by the BFD in response to a `bfd_make_section' request. 10348 10349 10350File: bfd.info, Node: coff, Next: elf, Prev: aout, Up: BFD back ends 10351 103523.3 coff backends 10353================= 10354 10355BFD supports a number of different flavours of coff format. The major 10356differences between formats are the sizes and alignments of fields in 10357structures on disk, and the occasional extra field. 10358 10359 Coff in all its varieties is implemented with a few common files and 10360a number of implementation specific files. For example, The 88k bcs 10361coff format is implemented in the file `coff-m88k.c'. This file 10362`#include's `coff/m88k.h' which defines the external structure of the 10363coff format for the 88k, and `coff/internal.h' which defines the 10364internal structure. `coff-m88k.c' also defines the relocations used by 10365the 88k format *Note Relocations::. 10366 10367 The Intel i960 processor version of coff is implemented in 10368`coff-i960.c'. This file has the same structure as `coff-m88k.c', 10369except that it includes `coff/i960.h' rather than `coff-m88k.h'. 10370 103713.3.1 Porting to a new version of coff 10372-------------------------------------- 10373 10374The recommended method is to select from the existing implementations 10375the version of coff which is most like the one you want to use. For 10376example, we'll say that i386 coff is the one you select, and that your 10377coff flavour is called foo. Copy `i386coff.c' to `foocoff.c', copy 10378`../include/coff/i386.h' to `../include/coff/foo.h', and add the lines 10379to `targets.c' and `Makefile.in' so that your new back end is used. 10380Alter the shapes of the structures in `../include/coff/foo.h' so that 10381they match what you need. You will probably also have to add `#ifdef's 10382to the code in `coff/internal.h' and `coffcode.h' if your version of 10383coff is too wild. 10384 10385 You can verify that your new BFD backend works quite simply by 10386building `objdump' from the `binutils' directory, and making sure that 10387its version of what's going on and your host system's idea (assuming it 10388has the pretty standard coff dump utility, usually called `att-dump' or 10389just `dump') are the same. Then clean up your code, and send what 10390you've done to Cygnus. Then your stuff will be in the next release, and 10391you won't have to keep integrating it. 10392 103933.3.2 How the coff backend works 10394-------------------------------- 10395 103963.3.2.1 File layout 10397................... 10398 10399The Coff backend is split into generic routines that are applicable to 10400any Coff target and routines that are specific to a particular target. 10401The target-specific routines are further split into ones which are 10402basically the same for all Coff targets except that they use the 10403external symbol format or use different values for certain constants. 10404 10405 The generic routines are in `coffgen.c'. These routines work for 10406any Coff target. They use some hooks into the target specific code; 10407the hooks are in a `bfd_coff_backend_data' structure, one of which 10408exists for each target. 10409 10410 The essentially similar target-specific routines are in 10411`coffcode.h'. This header file includes executable C code. The 10412various Coff targets first include the appropriate Coff header file, 10413make any special defines that are needed, and then include `coffcode.h'. 10414 10415 Some of the Coff targets then also have additional routines in the 10416target source file itself. 10417 10418 For example, `coff-i960.c' includes `coff/internal.h' and 10419`coff/i960.h'. It then defines a few constants, such as `I960', and 10420includes `coffcode.h'. Since the i960 has complex relocation types, 10421`coff-i960.c' also includes some code to manipulate the i960 relocs. 10422This code is not in `coffcode.h' because it would not be used by any 10423other target. 10424 104253.3.2.2 Coff long section names 10426............................... 10427 10428In the standard Coff object format, section names are limited to the 10429eight bytes available in the `s_name' field of the `SCNHDR' section 10430header structure. The format requires the field to be NUL-padded, but 10431not necessarily NUL-terminated, so the longest section names permitted 10432are a full eight characters. 10433 10434 The Microsoft PE variants of the Coff object file format add an 10435extension to support the use of long section names. This extension is 10436defined in section 4 of the Microsoft PE/COFF specification (rev 8.1). 10437If a section name is too long to fit into the section header's `s_name' 10438field, it is instead placed into the string table, and the `s_name' 10439field is filled with a slash ("/") followed by the ASCII decimal 10440representation of the offset of the full name relative to the string 10441table base. 10442 10443 Note that this implies that the extension can only be used in object 10444files, as executables do not contain a string table. The standard 10445specifies that long section names from objects emitted into executable 10446images are to be truncated. 10447 10448 However, as a GNU extension, BFD can generate executable images that 10449contain a string table and long section names. This would appear to be 10450technically valid, as the standard only says that Coff debugging 10451information is deprecated, not forbidden, and in practice it works, 10452although some tools that parse PE files expecting the MS standard 10453format may become confused; `PEview' is one known example. 10454 10455 The functionality is supported in BFD by code implemented under the 10456control of the macro `COFF_LONG_SECTION_NAMES'. If not defined, the 10457format does not support long section names in any way. If defined, it 10458is used to initialise a flag, `_bfd_coff_long_section_names', and a 10459hook function pointer, `_bfd_coff_set_long_section_names', in the Coff 10460backend data structure. The flag controls the generation of long 10461section names in output BFDs at runtime; if it is false, as it will be 10462by default when generating an executable image, long section names are 10463truncated; if true, the long section names extension is employed. The 10464hook points to a function that allows the value of the flag to be 10465altered at runtime, on formats that support long section names at all; 10466on other formats it points to a stub that returns an error indication. 10467 10468 With input BFDs, the flag is set according to whether any long 10469section names are detected while reading the section headers. For a 10470completely new BFD, the flag is set to the default for the target 10471format. This information can be used by a client of the BFD library 10472when deciding what output format to generate, and means that a BFD that 10473is opened for read and subsequently converted to a writeable BFD and 10474modified in-place will retain whatever format it had on input. 10475 10476 If `COFF_LONG_SECTION_NAMES' is simply defined (blank), or is 10477defined to the value "1", then long section names are enabled by 10478default; if it is defined to the value zero, they are disabled by 10479default (but still accepted in input BFDs). The header `coffcode.h' 10480defines a macro, `COFF_DEFAULT_LONG_SECTION_NAMES', which is used in 10481the backends to initialise the backend data structure fields 10482appropriately; see the comments for further detail. 10483 104843.3.2.3 Bit twiddling 10485..................... 10486 10487Each flavour of coff supported in BFD has its own header file 10488describing the external layout of the structures. There is also an 10489internal description of the coff layout, in `coff/internal.h'. A major 10490function of the coff backend is swapping the bytes and twiddling the 10491bits to translate the external form of the structures into the normal 10492internal form. This is all performed in the `bfd_swap'_thing_direction 10493routines. Some elements are different sizes between different versions 10494of coff; it is the duty of the coff version specific include file to 10495override the definitions of various packing routines in `coffcode.h'. 10496E.g., the size of line number entry in coff is sometimes 16 bits, and 10497sometimes 32 bits. `#define'ing `PUT_LNSZ_LNNO' and `GET_LNSZ_LNNO' 10498will select the correct one. No doubt, some day someone will find a 10499version of coff which has a varying field size not catered to at the 10500moment. To port BFD, that person will have to add more `#defines'. 10501Three of the bit twiddling routines are exported to `gdb'; 10502`coff_swap_aux_in', `coff_swap_sym_in' and `coff_swap_lineno_in'. `GDB' 10503reads the symbol table on its own, but uses BFD to fix things up. More 10504of the bit twiddlers are exported for `gas'; `coff_swap_aux_out', 10505`coff_swap_sym_out', `coff_swap_lineno_out', `coff_swap_reloc_out', 10506`coff_swap_filehdr_out', `coff_swap_aouthdr_out', 10507`coff_swap_scnhdr_out'. `Gas' currently keeps track of all the symbol 10508table and reloc drudgery itself, thereby saving the internal BFD 10509overhead, but uses BFD to swap things on the way out, making cross 10510ports much safer. Doing so also allows BFD (and thus the linker) to 10511use the same header files as `gas', which makes one avenue to disaster 10512disappear. 10513 105143.3.2.4 Symbol reading 10515...................... 10516 10517The simple canonical form for symbols used by BFD is not rich enough to 10518keep all the information available in a coff symbol table. The back end 10519gets around this problem by keeping the original symbol table around, 10520"behind the scenes". 10521 10522 When a symbol table is requested (through a call to 10523`bfd_canonicalize_symtab'), a request gets through to 10524`coff_get_normalized_symtab'. This reads the symbol table from the coff 10525file and swaps all the structures inside into the internal form. It 10526also fixes up all the pointers in the table (represented in the file by 10527offsets from the first symbol in the table) into physical pointers to 10528elements in the new internal table. This involves some work since the 10529meanings of fields change depending upon context: a field that is a 10530pointer to another structure in the symbol table at one moment may be 10531the size in bytes of a structure at the next. Another pass is made 10532over the table. All symbols which mark file names (`C_FILE' symbols) 10533are modified so that the internal string points to the value in the 10534auxent (the real filename) rather than the normal text associated with 10535the symbol (`".file"'). 10536 10537 At this time the symbol names are moved around. Coff stores all 10538symbols less than nine characters long physically within the symbol 10539table; longer strings are kept at the end of the file in the string 10540table. This pass moves all strings into memory and replaces them with 10541pointers to the strings. 10542 10543 The symbol table is massaged once again, this time to create the 10544canonical table used by the BFD application. Each symbol is inspected 10545in turn, and a decision made (using the `sclass' field) about the 10546various flags to set in the `asymbol'. *Note Symbols::. The generated 10547canonical table shares strings with the hidden internal symbol table. 10548 10549 Any linenumbers are read from the coff file too, and attached to the 10550symbols which own the functions the linenumbers belong to. 10551 105523.3.2.5 Symbol writing 10553...................... 10554 10555Writing a symbol to a coff file which didn't come from a coff file will 10556lose any debugging information. The `asymbol' structure remembers the 10557BFD from which the symbol was taken, and on output the back end makes 10558sure that the same destination target as source target is present. 10559 10560 When the symbols have come from a coff file then all the debugging 10561information is preserved. 10562 10563 Symbol tables are provided for writing to the back end in a vector 10564of pointers to pointers. This allows applications like the linker to 10565accumulate and output large symbol tables without having to do too much 10566byte copying. 10567 10568 This function runs through the provided symbol table and patches 10569each symbol marked as a file place holder (`C_FILE') to point to the 10570next file place holder in the list. It also marks each `offset' field 10571in the list with the offset from the first symbol of the current symbol. 10572 10573 Another function of this procedure is to turn the canonical value 10574form of BFD into the form used by coff. Internally, BFD expects symbol 10575values to be offsets from a section base; so a symbol physically at 105760x120, but in a section starting at 0x100, would have the value 0x20. 10577Coff expects symbols to contain their final value, so symbols have 10578their values changed at this point to reflect their sum with their 10579owning section. This transformation uses the `output_section' field of 10580the `asymbol''s `asection' *Note Sections::. 10581 10582 * `coff_mangle_symbols' 10583 This routine runs though the provided symbol table and uses the 10584offsets generated by the previous pass and the pointers generated when 10585the symbol table was read in to create the structured hierarchy 10586required by coff. It changes each pointer to a symbol into the index 10587into the symbol table of the asymbol. 10588 10589 * `coff_write_symbols' 10590 This routine runs through the symbol table and patches up the 10591symbols from their internal form into the coff way, calls the bit 10592twiddlers, and writes out the table to the file. 10593 105943.3.2.6 `coff_symbol_type' 10595.......................... 10596 10597*Description* 10598The hidden information for an `asymbol' is described in a 10599`combined_entry_type': 10600 10601 10602 typedef struct coff_ptr_struct 10603 { 10604 /* Remembers the offset from the first symbol in the file for 10605 this symbol. Generated by coff_renumber_symbols. */ 10606 unsigned int offset; 10607 10608 /* Should the value of this symbol be renumbered. Used for 10609 XCOFF C_BSTAT symbols. Set by coff_slurp_symbol_table. */ 10610 unsigned int fix_value : 1; 10611 10612 /* Should the tag field of this symbol be renumbered. 10613 Created by coff_pointerize_aux. */ 10614 unsigned int fix_tag : 1; 10615 10616 /* Should the endidx field of this symbol be renumbered. 10617 Created by coff_pointerize_aux. */ 10618 unsigned int fix_end : 1; 10619 10620 /* Should the x_csect.x_scnlen field be renumbered. 10621 Created by coff_pointerize_aux. */ 10622 unsigned int fix_scnlen : 1; 10623 10624 /* Fix up an XCOFF C_BINCL/C_EINCL symbol. The value is the 10625 index into the line number entries. Set by coff_slurp_symbol_table. */ 10626 unsigned int fix_line : 1; 10627 10628 /* The container for the symbol structure as read and translated 10629 from the file. */ 10630 union 10631 { 10632 union internal_auxent auxent; 10633 struct internal_syment syment; 10634 } u; 10635 10636 /* Selector for the union above. */ 10637 bfd_boolean is_sym; 10638 } combined_entry_type; 10639 10640 10641 /* Each canonical asymbol really looks like this: */ 10642 10643 typedef struct coff_symbol_struct 10644 { 10645 /* The actual symbol which the rest of BFD works with */ 10646 asymbol symbol; 10647 10648 /* A pointer to the hidden information for this symbol */ 10649 combined_entry_type *native; 10650 10651 /* A pointer to the linenumber information for this symbol */ 10652 struct lineno_cache_entry *lineno; 10653 10654 /* Have the line numbers been relocated yet ? */ 10655 bfd_boolean done_lineno; 10656 } coff_symbol_type; 10657 106583.3.2.7 `bfd_coff_backend_data' 10659............................... 10660 10661 /* COFF symbol classifications. */ 10662 10663 enum coff_symbol_classification 10664 { 10665 /* Global symbol. */ 10666 COFF_SYMBOL_GLOBAL, 10667 /* Common symbol. */ 10668 COFF_SYMBOL_COMMON, 10669 /* Undefined symbol. */ 10670 COFF_SYMBOL_UNDEFINED, 10671 /* Local symbol. */ 10672 COFF_SYMBOL_LOCAL, 10673 /* PE section symbol. */ 10674 COFF_SYMBOL_PE_SECTION 10675 }; 10676 10677 typedef asection * (*coff_gc_mark_hook_fn) 10678 (asection *, struct bfd_link_info *, struct internal_reloc *, 10679 struct coff_link_hash_entry *, struct internal_syment *); 10680Special entry points for gdb to swap in coff symbol table parts: 10681 typedef struct 10682 { 10683 void (*_bfd_coff_swap_aux_in) 10684 (bfd *, void *, int, int, int, int, void *); 10685 10686 void (*_bfd_coff_swap_sym_in) 10687 (bfd *, void *, void *); 10688 10689 void (*_bfd_coff_swap_lineno_in) 10690 (bfd *, void *, void *); 10691 10692 unsigned int (*_bfd_coff_swap_aux_out) 10693 (bfd *, void *, int, int, int, int, void *); 10694 10695 unsigned int (*_bfd_coff_swap_sym_out) 10696 (bfd *, void *, void *); 10697 10698 unsigned int (*_bfd_coff_swap_lineno_out) 10699 (bfd *, void *, void *); 10700 10701 unsigned int (*_bfd_coff_swap_reloc_out) 10702 (bfd *, void *, void *); 10703 10704 unsigned int (*_bfd_coff_swap_filehdr_out) 10705 (bfd *, void *, void *); 10706 10707 unsigned int (*_bfd_coff_swap_aouthdr_out) 10708 (bfd *, void *, void *); 10709 10710 unsigned int (*_bfd_coff_swap_scnhdr_out) 10711 (bfd *, void *, void *); 10712 10713 unsigned int _bfd_filhsz; 10714 unsigned int _bfd_aoutsz; 10715 unsigned int _bfd_scnhsz; 10716 unsigned int _bfd_symesz; 10717 unsigned int _bfd_auxesz; 10718 unsigned int _bfd_relsz; 10719 unsigned int _bfd_linesz; 10720 unsigned int _bfd_filnmlen; 10721 bfd_boolean _bfd_coff_long_filenames; 10722 10723 bfd_boolean _bfd_coff_long_section_names; 10724 bfd_boolean (*_bfd_coff_set_long_section_names) 10725 (bfd *, int); 10726 10727 unsigned int _bfd_coff_default_section_alignment_power; 10728 bfd_boolean _bfd_coff_force_symnames_in_strings; 10729 unsigned int _bfd_coff_debug_string_prefix_length; 10730 unsigned int _bfd_coff_max_nscns; 10731 10732 void (*_bfd_coff_swap_filehdr_in) 10733 (bfd *, void *, void *); 10734 10735 void (*_bfd_coff_swap_aouthdr_in) 10736 (bfd *, void *, void *); 10737 10738 void (*_bfd_coff_swap_scnhdr_in) 10739 (bfd *, void *, void *); 10740 10741 void (*_bfd_coff_swap_reloc_in) 10742 (bfd *abfd, void *, void *); 10743 10744 bfd_boolean (*_bfd_coff_bad_format_hook) 10745 (bfd *, void *); 10746 10747 bfd_boolean (*_bfd_coff_set_arch_mach_hook) 10748 (bfd *, void *); 10749 10750 void * (*_bfd_coff_mkobject_hook) 10751 (bfd *, void *, void *); 10752 10753 bfd_boolean (*_bfd_styp_to_sec_flags_hook) 10754 (bfd *, void *, const char *, asection *, flagword *); 10755 10756 void (*_bfd_set_alignment_hook) 10757 (bfd *, asection *, void *); 10758 10759 bfd_boolean (*_bfd_coff_slurp_symbol_table) 10760 (bfd *); 10761 10762 bfd_boolean (*_bfd_coff_symname_in_debug) 10763 (bfd *, struct internal_syment *); 10764 10765 bfd_boolean (*_bfd_coff_pointerize_aux_hook) 10766 (bfd *, combined_entry_type *, combined_entry_type *, 10767 unsigned int, combined_entry_type *); 10768 10769 bfd_boolean (*_bfd_coff_print_aux) 10770 (bfd *, FILE *, combined_entry_type *, combined_entry_type *, 10771 combined_entry_type *, unsigned int); 10772 10773 void (*_bfd_coff_reloc16_extra_cases) 10774 (bfd *, struct bfd_link_info *, struct bfd_link_order *, arelent *, 10775 bfd_byte *, unsigned int *, unsigned int *); 10776 10777 int (*_bfd_coff_reloc16_estimate) 10778 (bfd *, asection *, arelent *, unsigned int, 10779 struct bfd_link_info *); 10780 10781 enum coff_symbol_classification (*_bfd_coff_classify_symbol) 10782 (bfd *, struct internal_syment *); 10783 10784 bfd_boolean (*_bfd_coff_compute_section_file_positions) 10785 (bfd *); 10786 10787 bfd_boolean (*_bfd_coff_start_final_link) 10788 (bfd *, struct bfd_link_info *); 10789 10790 bfd_boolean (*_bfd_coff_relocate_section) 10791 (bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, 10792 struct internal_reloc *, struct internal_syment *, asection **); 10793 10794 reloc_howto_type *(*_bfd_coff_rtype_to_howto) 10795 (bfd *, asection *, struct internal_reloc *, 10796 struct coff_link_hash_entry *, struct internal_syment *, 10797 bfd_vma *); 10798 10799 bfd_boolean (*_bfd_coff_adjust_symndx) 10800 (bfd *, struct bfd_link_info *, bfd *, asection *, 10801 struct internal_reloc *, bfd_boolean *); 10802 10803 bfd_boolean (*_bfd_coff_link_add_one_symbol) 10804 (struct bfd_link_info *, bfd *, const char *, flagword, 10805 asection *, bfd_vma, const char *, bfd_boolean, bfd_boolean, 10806 struct bfd_link_hash_entry **); 10807 10808 bfd_boolean (*_bfd_coff_link_output_has_begun) 10809 (bfd *, struct coff_final_link_info *); 10810 10811 bfd_boolean (*_bfd_coff_final_link_postscript) 10812 (bfd *, struct coff_final_link_info *); 10813 10814 bfd_boolean (*_bfd_coff_print_pdata) 10815 (bfd *, void *); 10816 10817 } bfd_coff_backend_data; 10818 10819 #define coff_backend_info(abfd) \ 10820 ((bfd_coff_backend_data *) (abfd)->xvec->backend_data) 10821 10822 #define bfd_coff_swap_aux_in(a,e,t,c,ind,num,i) \ 10823 ((coff_backend_info (a)->_bfd_coff_swap_aux_in) (a,e,t,c,ind,num,i)) 10824 10825 #define bfd_coff_swap_sym_in(a,e,i) \ 10826 ((coff_backend_info (a)->_bfd_coff_swap_sym_in) (a,e,i)) 10827 10828 #define bfd_coff_swap_lineno_in(a,e,i) \ 10829 ((coff_backend_info ( a)->_bfd_coff_swap_lineno_in) (a,e,i)) 10830 10831 #define bfd_coff_swap_reloc_out(abfd, i, o) \ 10832 ((coff_backend_info (abfd)->_bfd_coff_swap_reloc_out) (abfd, i, o)) 10833 10834 #define bfd_coff_swap_lineno_out(abfd, i, o) \ 10835 ((coff_backend_info (abfd)->_bfd_coff_swap_lineno_out) (abfd, i, o)) 10836 10837 #define bfd_coff_swap_aux_out(a,i,t,c,ind,num,o) \ 10838 ((coff_backend_info (a)->_bfd_coff_swap_aux_out) (a,i,t,c,ind,num,o)) 10839 10840 #define bfd_coff_swap_sym_out(abfd, i,o) \ 10841 ((coff_backend_info (abfd)->_bfd_coff_swap_sym_out) (abfd, i, o)) 10842 10843 #define bfd_coff_swap_scnhdr_out(abfd, i,o) \ 10844 ((coff_backend_info (abfd)->_bfd_coff_swap_scnhdr_out) (abfd, i, o)) 10845 10846 #define bfd_coff_swap_filehdr_out(abfd, i,o) \ 10847 ((coff_backend_info (abfd)->_bfd_coff_swap_filehdr_out) (abfd, i, o)) 10848 10849 #define bfd_coff_swap_aouthdr_out(abfd, i,o) \ 10850 ((coff_backend_info (abfd)->_bfd_coff_swap_aouthdr_out) (abfd, i, o)) 10851 10852 #define bfd_coff_filhsz(abfd) (coff_backend_info (abfd)->_bfd_filhsz) 10853 #define bfd_coff_aoutsz(abfd) (coff_backend_info (abfd)->_bfd_aoutsz) 10854 #define bfd_coff_scnhsz(abfd) (coff_backend_info (abfd)->_bfd_scnhsz) 10855 #define bfd_coff_symesz(abfd) (coff_backend_info (abfd)->_bfd_symesz) 10856 #define bfd_coff_auxesz(abfd) (coff_backend_info (abfd)->_bfd_auxesz) 10857 #define bfd_coff_relsz(abfd) (coff_backend_info (abfd)->_bfd_relsz) 10858 #define bfd_coff_linesz(abfd) (coff_backend_info (abfd)->_bfd_linesz) 10859 #define bfd_coff_filnmlen(abfd) (coff_backend_info (abfd)->_bfd_filnmlen) 10860 #define bfd_coff_long_filenames(abfd) \ 10861 (coff_backend_info (abfd)->_bfd_coff_long_filenames) 10862 #define bfd_coff_long_section_names(abfd) \ 10863 (coff_backend_info (abfd)->_bfd_coff_long_section_names) 10864 #define bfd_coff_set_long_section_names(abfd, enable) \ 10865 ((coff_backend_info (abfd)->_bfd_coff_set_long_section_names) (abfd, enable)) 10866 #define bfd_coff_default_section_alignment_power(abfd) \ 10867 (coff_backend_info (abfd)->_bfd_coff_default_section_alignment_power) 10868 #define bfd_coff_max_nscns(abfd) \ 10869 (coff_backend_info (abfd)->_bfd_coff_max_nscns) 10870 10871 #define bfd_coff_swap_filehdr_in(abfd, i,o) \ 10872 ((coff_backend_info (abfd)->_bfd_coff_swap_filehdr_in) (abfd, i, o)) 10873 10874 #define bfd_coff_swap_aouthdr_in(abfd, i,o) \ 10875 ((coff_backend_info (abfd)->_bfd_coff_swap_aouthdr_in) (abfd, i, o)) 10876 10877 #define bfd_coff_swap_scnhdr_in(abfd, i,o) \ 10878 ((coff_backend_info (abfd)->_bfd_coff_swap_scnhdr_in) (abfd, i, o)) 10879 10880 #define bfd_coff_swap_reloc_in(abfd, i, o) \ 10881 ((coff_backend_info (abfd)->_bfd_coff_swap_reloc_in) (abfd, i, o)) 10882 10883 #define bfd_coff_bad_format_hook(abfd, filehdr) \ 10884 ((coff_backend_info (abfd)->_bfd_coff_bad_format_hook) (abfd, filehdr)) 10885 10886 #define bfd_coff_set_arch_mach_hook(abfd, filehdr)\ 10887 ((coff_backend_info (abfd)->_bfd_coff_set_arch_mach_hook) (abfd, filehdr)) 10888 #define bfd_coff_mkobject_hook(abfd, filehdr, aouthdr)\ 10889 ((coff_backend_info (abfd)->_bfd_coff_mkobject_hook)\ 10890 (abfd, filehdr, aouthdr)) 10891 10892 #define bfd_coff_styp_to_sec_flags_hook(abfd, scnhdr, name, section, flags_ptr)\ 10893 ((coff_backend_info (abfd)->_bfd_styp_to_sec_flags_hook)\ 10894 (abfd, scnhdr, name, section, flags_ptr)) 10895 10896 #define bfd_coff_set_alignment_hook(abfd, sec, scnhdr)\ 10897 ((coff_backend_info (abfd)->_bfd_set_alignment_hook) (abfd, sec, scnhdr)) 10898 10899 #define bfd_coff_slurp_symbol_table(abfd)\ 10900 ((coff_backend_info (abfd)->_bfd_coff_slurp_symbol_table) (abfd)) 10901 10902 #define bfd_coff_symname_in_debug(abfd, sym)\ 10903 ((coff_backend_info (abfd)->_bfd_coff_symname_in_debug) (abfd, sym)) 10904 10905 #define bfd_coff_force_symnames_in_strings(abfd)\ 10906 (coff_backend_info (abfd)->_bfd_coff_force_symnames_in_strings) 10907 10908 #define bfd_coff_debug_string_prefix_length(abfd)\ 10909 (coff_backend_info (abfd)->_bfd_coff_debug_string_prefix_length) 10910 10911 #define bfd_coff_print_aux(abfd, file, base, symbol, aux, indaux)\ 10912 ((coff_backend_info (abfd)->_bfd_coff_print_aux)\ 10913 (abfd, file, base, symbol, aux, indaux)) 10914 10915 #define bfd_coff_reloc16_extra_cases(abfd, link_info, link_order,\ 10916 reloc, data, src_ptr, dst_ptr)\ 10917 ((coff_backend_info (abfd)->_bfd_coff_reloc16_extra_cases)\ 10918 (abfd, link_info, link_order, reloc, data, src_ptr, dst_ptr)) 10919 10920 #define bfd_coff_reloc16_estimate(abfd, section, reloc, shrink, link_info)\ 10921 ((coff_backend_info (abfd)->_bfd_coff_reloc16_estimate)\ 10922 (abfd, section, reloc, shrink, link_info)) 10923 10924 #define bfd_coff_classify_symbol(abfd, sym)\ 10925 ((coff_backend_info (abfd)->_bfd_coff_classify_symbol)\ 10926 (abfd, sym)) 10927 10928 #define bfd_coff_compute_section_file_positions(abfd)\ 10929 ((coff_backend_info (abfd)->_bfd_coff_compute_section_file_positions)\ 10930 (abfd)) 10931 10932 #define bfd_coff_start_final_link(obfd, info)\ 10933 ((coff_backend_info (obfd)->_bfd_coff_start_final_link)\ 10934 (obfd, info)) 10935 #define bfd_coff_relocate_section(obfd,info,ibfd,o,con,rel,isyms,secs)\ 10936 ((coff_backend_info (ibfd)->_bfd_coff_relocate_section)\ 10937 (obfd, info, ibfd, o, con, rel, isyms, secs)) 10938 #define bfd_coff_rtype_to_howto(abfd, sec, rel, h, sym, addendp)\ 10939 ((coff_backend_info (abfd)->_bfd_coff_rtype_to_howto)\ 10940 (abfd, sec, rel, h, sym, addendp)) 10941 #define bfd_coff_adjust_symndx(obfd, info, ibfd, sec, rel, adjustedp)\ 10942 ((coff_backend_info (abfd)->_bfd_coff_adjust_symndx)\ 10943 (obfd, info, ibfd, sec, rel, adjustedp)) 10944 #define bfd_coff_link_add_one_symbol(info, abfd, name, flags, section,\ 10945 value, string, cp, coll, hashp)\ 10946 ((coff_backend_info (abfd)->_bfd_coff_link_add_one_symbol)\ 10947 (info, abfd, name, flags, section, value, string, cp, coll, hashp)) 10948 10949 #define bfd_coff_link_output_has_begun(a,p) \ 10950 ((coff_backend_info (a)->_bfd_coff_link_output_has_begun) (a, p)) 10951 #define bfd_coff_final_link_postscript(a,p) \ 10952 ((coff_backend_info (a)->_bfd_coff_final_link_postscript) (a, p)) 10953 10954 #define bfd_coff_have_print_pdata(a) \ 10955 (coff_backend_info (a)->_bfd_coff_print_pdata) 10956 #define bfd_coff_print_pdata(a,p) \ 10957 ((coff_backend_info (a)->_bfd_coff_print_pdata) (a, p)) 10958 10959 /* Macro: Returns true if the bfd is a PE executable as opposed to a 10960 PE object file. */ 10961 #define bfd_pei_p(abfd) \ 10962 (CONST_STRNEQ ((abfd)->xvec->name, "pei-")) 10963 109643.3.2.8 Writing relocations 10965........................... 10966 10967To write relocations, the back end steps though the canonical 10968relocation table and create an `internal_reloc'. The symbol index to 10969use is removed from the `offset' field in the symbol table supplied. 10970The address comes directly from the sum of the section base address and 10971the relocation offset; the type is dug directly from the howto field. 10972Then the `internal_reloc' is swapped into the shape of an 10973`external_reloc' and written out to disk. 10974 109753.3.2.9 Reading linenumbers 10976........................... 10977 10978Creating the linenumber table is done by reading in the entire coff 10979linenumber table, and creating another table for internal use. 10980 10981 A coff linenumber table is structured so that each function is 10982marked as having a line number of 0. Each line within the function is 10983an offset from the first line in the function. The base of the line 10984number information for the table is stored in the symbol associated 10985with the function. 10986 10987 Note: The PE format uses line number 0 for a flag indicating a new 10988source file. 10989 10990 The information is copied from the external to the internal table, 10991and each symbol which marks a function is marked by pointing its... 10992 10993 How does this work ? 10994 109953.3.2.10 Reading relocations 10996............................ 10997 10998Coff relocations are easily transformed into the internal BFD form 10999(`arelent'). 11000 11001 Reading a coff relocation table is done in the following stages: 11002 11003 * Read the entire coff relocation table into memory. 11004 11005 * Process each relocation in turn; first swap it from the external 11006 to the internal form. 11007 11008 * Turn the symbol referenced in the relocation's symbol index into a 11009 pointer into the canonical symbol table. This table is the same 11010 as the one returned by a call to `bfd_canonicalize_symtab'. The 11011 back end will call that routine and save the result if a 11012 canonicalization hasn't been done. 11013 11014 * The reloc index is turned into a pointer to a howto structure, in 11015 a back end specific way. For instance, the 386 and 960 use the 11016 `r_type' to directly produce an index into a howto table vector; 11017 the 88k subtracts a number from the `r_type' field and creates an 11018 addend field. 11019 11020 11021File: bfd.info, Node: elf, Next: mmo, Prev: coff, Up: BFD back ends 11022 110233.4 ELF backends 11024================ 11025 11026BFD support for ELF formats is being worked on. Currently, the best 11027supported back ends are for sparc and i386 (running svr4 or Solaris 2). 11028 11029 Documentation of the internals of the support code still needs to be 11030written. The code is changing quickly enough that we haven't bothered 11031yet. 11032 11033 11034File: bfd.info, Node: mmo, Prev: elf, Up: BFD back ends 11035 110363.5 mmo backend 11037=============== 11038 11039The mmo object format is used exclusively together with Professor 11040Donald E. Knuth's educational 64-bit processor MMIX. The simulator 11041`mmix' which is available at `http://mmix.cs.hm.edu/src/index.html' 11042understands this format. That package also includes a combined 11043assembler and linker called `mmixal'. The mmo format has no advantages 11044feature-wise compared to e.g. ELF. It is a simple non-relocatable 11045object format with no support for archives or debugging information, 11046except for symbol value information and line numbers (which is not yet 11047implemented in BFD). See `http://mmix.cs.hm.edu/' for more information 11048about MMIX. The ELF format is used for intermediate object files in 11049the BFD implementation. 11050 11051* Menu: 11052 11053* File layout:: 11054* Symbol-table:: 11055* mmo section mapping:: 11056 11057 11058File: bfd.info, Node: File layout, Next: Symbol-table, Prev: mmo, Up: mmo 11059 110603.5.1 File layout 11061----------------- 11062 11063The mmo file contents is not partitioned into named sections as with 11064e.g. ELF. Memory areas is formed by specifying the location of the 11065data that follows. Only the memory area `0x0000...00' to `0x01ff...ff' 11066is executable, so it is used for code (and constants) and the area 11067`0x2000...00' to `0x20ff...ff' is used for writable data. *Note mmo 11068section mapping::. 11069 11070 There is provision for specifying "special data" of 65536 different 11071types. We use type 80 (decimal), arbitrarily chosen the same as the 11072ELF `e_machine' number for MMIX, filling it with section information 11073normally found in ELF objects. *Note mmo section mapping::. 11074 11075 Contents is entered as 32-bit words, xor:ed over previous contents, 11076always zero-initialized. A word that starts with the byte `0x98' forms 11077a command called a `lopcode', where the next byte distinguished between 11078the thirteen lopcodes. The two remaining bytes, called the `Y' and `Z' 11079fields, or the `YZ' field (a 16-bit big-endian number), are used for 11080various purposes different for each lopcode. As documented in 11081`http://mmix.cs.hm.edu/doc/mmixal.pdf', the lopcodes are: 11082 11083`lop_quote' 11084 0x98000001. The next word is contents, regardless of whether it 11085 starts with 0x98 or not. 11086 11087`lop_loc' 11088 0x9801YYZZ, where `Z' is 1 or 2. This is a location directive, 11089 setting the location for the next data to the next 32-bit word 11090 (for Z = 1) or 64-bit word (for Z = 2), plus Y * 2^56. Normally 11091 `Y' is 0 for the text segment and 2 for the data segment. Beware 11092 that the low bits of non- tetrabyte-aligned values are silently 11093 discarded when being automatically incremented and when storing 11094 contents (in contrast to e.g. its use as current location when 11095 followed by lop_fixo et al before the next possibly-quoted 11096 tetrabyte contents). 11097 11098`lop_skip' 11099 0x9802YYZZ. Increase the current location by `YZ' bytes. 11100 11101`lop_fixo' 11102 0x9803YYZZ, where `Z' is 1 or 2. Store the current location as 64 11103 bits into the location pointed to by the next 32-bit (Z = 1) or 11104 64-bit (Z = 2) word, plus Y * 2^56. 11105 11106`lop_fixr' 11107 0x9804YYZZ. `YZ' is stored into the current location plus 2 - 4 * 11108 YZ. 11109 11110`lop_fixrx' 11111 0x980500ZZ. `Z' is 16 or 24. A value `L' derived from the 11112 following 32-bit word are used in a manner similar to `YZ' in 11113 lop_fixr: it is xor:ed into the current location minus 4 * L. The 11114 first byte of the word is 0 or 1. If it is 1, then L = (LOWEST 24 11115 BITS OF WORD) - 2^Z, if 0, then L = (LOWEST 24 BITS OF WORD). 11116 11117`lop_file' 11118 0x9806YYZZ. `Y' is the file number, `Z' is count of 32-bit words. 11119 Set the file number to `Y' and the line counter to 0. The next Z 11120 * 4 bytes contain the file name, padded with zeros if the count is 11121 not a multiple of four. The same `Y' may occur multiple times, 11122 but `Z' must be 0 for all but the first occurrence. 11123 11124`lop_line' 11125 0x9807YYZZ. `YZ' is the line number. Together with lop_file, it 11126 forms the source location for the next 32-bit word. Note that for 11127 each non-lopcode 32-bit word, line numbers are assumed incremented 11128 by one. 11129 11130`lop_spec' 11131 0x9808YYZZ. `YZ' is the type number. Data until the next lopcode 11132 other than lop_quote forms special data of type `YZ'. *Note mmo 11133 section mapping::. 11134 11135 Other types than 80, (or type 80 with a content that does not 11136 parse) is stored in sections named `.MMIX.spec_data.N' where N is 11137 the `YZ'-type. The flags for such a sections say not to allocate 11138 or load the data. The vma is 0. Contents of multiple occurrences 11139 of special data N is concatenated to the data of the previous 11140 lop_spec Ns. The location in data or code at which the lop_spec 11141 occurred is lost. 11142 11143`lop_pre' 11144 0x980901ZZ. The first lopcode in a file. The `Z' field forms the 11145 length of header information in 32-bit words, where the first word 11146 tells the time in seconds since `00:00:00 GMT Jan 1 1970'. 11147 11148`lop_post' 11149 0x980a00ZZ. Z > 32. This lopcode follows after all 11150 content-generating lopcodes in a program. The `Z' field denotes 11151 the value of `rG' at the beginning of the program. The following 11152 256 - Z big-endian 64-bit words are loaded into global registers 11153 `$G' ... `$255'. 11154 11155`lop_stab' 11156 0x980b0000. The next-to-last lopcode in a program. Must follow 11157 immediately after the lop_post lopcode and its data. After this 11158 lopcode follows all symbols in a compressed format (*note 11159 Symbol-table::). 11160 11161`lop_end' 11162 0x980cYYZZ. The last lopcode in a program. It must follow the 11163 lop_stab lopcode and its data. The `YZ' field contains the number 11164 of 32-bit words of symbol table information after the preceding 11165 lop_stab lopcode. 11166 11167 Note that the lopcode "fixups"; `lop_fixr', `lop_fixrx' and 11168`lop_fixo' are not generated by BFD, but are handled. They are 11169generated by `mmixal'. 11170 11171 This trivial one-label, one-instruction file: 11172 11173 :Main TRAP 1,2,3 11174 11175 can be represented this way in mmo: 11176 11177 0x98090101 - lop_pre, one 32-bit word with timestamp. 11178 <timestamp> 11179 0x98010002 - lop_loc, text segment, using a 64-bit address. 11180 Note that mmixal does not emit this for the file above. 11181 0x00000000 - Address, high 32 bits. 11182 0x00000000 - Address, low 32 bits. 11183 0x98060002 - lop_file, 2 32-bit words for file-name. 11184 0x74657374 - "test" 11185 0x2e730000 - ".s\0\0" 11186 0x98070001 - lop_line, line 1. 11187 0x00010203 - TRAP 1,2,3 11188 0x980a00ff - lop_post, setting $255 to 0. 11189 0x00000000 11190 0x00000000 11191 0x980b0000 - lop_stab for ":Main" = 0, serial 1. 11192 0x203a4040 *Note Symbol-table::. 11193 0x10404020 11194 0x4d206120 11195 0x69016e00 11196 0x81000000 11197 0x980c0005 - lop_end; symbol table contained five 32-bit words. 11198 11199 11200File: bfd.info, Node: Symbol-table, Next: mmo section mapping, Prev: File layout, Up: mmo 11201 112023.5.2 Symbol table format 11203------------------------- 11204 11205From mmixal.w (or really, the generated mmixal.tex) in the MMIXware 11206package which also contains the `mmix' simulator: "Symbols are stored 11207and retrieved by means of a `ternary search trie', following ideas of 11208Bentley and Sedgewick. (See ACM-SIAM Symp. on Discrete Algorithms `8' 11209(1997), 360-369; R.Sedgewick, `Algorithms in C' (Reading, Mass. 11210Addison-Wesley, 1998), `15.4'.) Each trie node stores a character, and 11211there are branches to subtries for the cases where a given character is 11212less than, equal to, or greater than the character in the trie. There 11213also is a pointer to a symbol table entry if a symbol ends at the 11214current node." 11215 11216 So it's a tree encoded as a stream of bytes. The stream of bytes 11217acts on a single virtual global symbol, adding and removing characters 11218and signalling complete symbol points. Here, we read the stream and 11219create symbols at the completion points. 11220 11221 First, there's a control byte `m'. If any of the listed bits in `m' 11222is nonzero, we execute what stands at the right, in the listed order: 11223 11224 (MMO3_LEFT) 11225 0x40 - Traverse left trie. 11226 (Read a new command byte and recurse.) 11227 11228 (MMO3_SYMBITS) 11229 0x2f - Read the next byte as a character and store it in the 11230 current character position; increment character position. 11231 Test the bits of `m': 11232 11233 (MMO3_WCHAR) 11234 0x80 - The character is 16-bit (so read another byte, 11235 merge into current character. 11236 11237 (MMO3_TYPEBITS) 11238 0xf - We have a complete symbol; parse the type, value 11239 and serial number and do what should be done 11240 with a symbol. The type and length information 11241 is in j = (m & 0xf). 11242 11243 (MMO3_REGQUAL_BITS) 11244 j == 0xf: A register variable. The following 11245 byte tells which register. 11246 j <= 8: An absolute symbol. Read j bytes as the 11247 big-endian number the symbol equals. 11248 A j = 2 with two zero bytes denotes an 11249 unknown symbol. 11250 j > 8: As with j <= 8, but add (0x20 << 56) 11251 to the value in the following j - 8 11252 bytes. 11253 11254 Then comes the serial number, as a variant of 11255 uleb128, but better named ubeb128: 11256 Read bytes and shift the previous value left 7 11257 (multiply by 128). Add in the new byte, repeat 11258 until a byte has bit 7 set. The serial number 11259 is the computed value minus 128. 11260 11261 (MMO3_MIDDLE) 11262 0x20 - Traverse middle trie. (Read a new command byte 11263 and recurse.) Decrement character position. 11264 11265 (MMO3_RIGHT) 11266 0x10 - Traverse right trie. (Read a new command byte and 11267 recurse.) 11268 11269 Let's look again at the `lop_stab' for the trivial file (*note File 11270layout::). 11271 11272 0x980b0000 - lop_stab for ":Main" = 0, serial 1. 11273 0x203a4040 11274 0x10404020 11275 0x4d206120 11276 0x69016e00 11277 0x81000000 11278 11279 This forms the trivial trie (note that the path between ":" and "M" 11280is redundant): 11281 11282 203a ":" 11283 40 / 11284 40 / 11285 10 \ 11286 40 / 11287 40 / 11288 204d "M" 11289 2061 "a" 11290 2069 "i" 11291 016e "n" is the last character in a full symbol, and 11292 with a value represented in one byte. 11293 00 The value is 0. 11294 81 The serial number is 1. 11295 11296 11297File: bfd.info, Node: mmo section mapping, Prev: Symbol-table, Up: mmo 11298 112993.5.3 mmo section mapping 11300------------------------- 11301 11302The implementation in BFD uses special data type 80 (decimal) to 11303encapsulate and describe named sections, containing e.g. debug 11304information. If needed, any datum in the encapsulation will be quoted 11305using lop_quote. First comes a 32-bit word holding the number of 1130632-bit words containing the zero-terminated zero-padded segment name. 11307After the name there's a 32-bit word holding flags describing the 11308section type. Then comes a 64-bit big-endian word with the section 11309length (in bytes), then another with the section start address. 11310Depending on the type of section, the contents might follow, 11311zero-padded to 32-bit boundary. For a loadable section (such as data 11312or code), the contents might follow at some later point, not 11313necessarily immediately, as a lop_loc with the same start address as in 11314the section description, followed by the contents. This in effect 11315forms a descriptor that must be emitted before the actual contents. 11316Sections described this way must not overlap. 11317 11318 For areas that don't have such descriptors, synthetic sections are 11319formed by BFD. Consecutive contents in the two memory areas 11320`0x0000...00' to `0x01ff...ff' and `0x2000...00' to `0x20ff...ff' are 11321entered in sections named `.text' and `.data' respectively. If an area 11322is not otherwise described, but would together with a neighboring lower 11323area be less than `0x40000000' bytes long, it is joined with the lower 11324area and the gap is zero-filled. For other cases, a new section is 11325formed, named `.MMIX.sec.N'. Here, N is a number, a running count 11326through the mmo file, starting at 0. 11327 11328 A loadable section specified as: 11329 11330 .section secname,"ax" 11331 TETRA 1,2,3,4,-1,-2009 11332 BYTE 80 11333 11334 and linked to address `0x4', is represented by the sequence: 11335 11336 0x98080050 - lop_spec 80 11337 0x00000002 - two 32-bit words for the section name 11338 0x7365636e - "secn" 11339 0x616d6500 - "ame\0" 11340 0x00000033 - flags CODE, READONLY, LOAD, ALLOC 11341 0x00000000 - high 32 bits of section length 11342 0x0000001c - section length is 28 bytes; 6 * 4 + 1 + alignment to 32 bits 11343 0x00000000 - high 32 bits of section address 11344 0x00000004 - section address is 4 11345 0x98010002 - 64 bits with address of following data 11346 0x00000000 - high 32 bits of address 11347 0x00000004 - low 32 bits: data starts at address 4 11348 0x00000001 - 1 11349 0x00000002 - 2 11350 0x00000003 - 3 11351 0x00000004 - 4 11352 0xffffffff - -1 11353 0xfffff827 - -2009 11354 0x50000000 - 80 as a byte, padded with zeros. 11355 11356 Note that the lop_spec wrapping does not include the section 11357contents. Compare this to a non-loaded section specified as: 11358 11359 .section thirdsec 11360 TETRA 200001,100002 11361 BYTE 38,40 11362 11363 This, when linked to address `0x200000000000001c', is represented by: 11364 11365 0x98080050 - lop_spec 80 11366 0x00000002 - two 32-bit words for the section name 11367 0x7365636e - "thir" 11368 0x616d6500 - "dsec" 11369 0x00000010 - flag READONLY 11370 0x00000000 - high 32 bits of section length 11371 0x0000000c - section length is 12 bytes; 2 * 4 + 2 + alignment to 32 bits 11372 0x20000000 - high 32 bits of address 11373 0x0000001c - low 32 bits of address 0x200000000000001c 11374 0x00030d41 - 200001 11375 0x000186a2 - 100002 11376 0x26280000 - 38, 40 as bytes, padded with zeros 11377 11378 For the latter example, the section contents must not be loaded in 11379memory, and is therefore specified as part of the special data. The 11380address is usually unimportant but might provide information for e.g. 11381the DWARF 2 debugging format. 11382 11383 11384File: bfd.info, Node: GNU Free Documentation License, Next: BFD Index, Prev: BFD back ends, Up: Top 11385 11386 Version 1.3, 3 November 2008 11387 11388 Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. 11389 `http://fsf.org/' 11390 11391 Everyone is permitted to copy and distribute verbatim copies 11392 of this license document, but changing it is not allowed. 11393 11394 0. PREAMBLE 11395 11396 The purpose of this License is to make a manual, textbook, or other 11397 functional and useful document "free" in the sense of freedom: to 11398 assure everyone the effective freedom to copy and redistribute it, 11399 with or without modifying it, either commercially or 11400 noncommercially. Secondarily, this License preserves for the 11401 author and publisher a way to get credit for their work, while not 11402 being considered responsible for modifications made by others. 11403 11404 This License is a kind of "copyleft", which means that derivative 11405 works of the document must themselves be free in the same sense. 11406 It complements the GNU General Public License, which is a copyleft 11407 license designed for free software. 11408 11409 We have designed this License in order to use it for manuals for 11410 free software, because free software needs free documentation: a 11411 free program should come with manuals providing the same freedoms 11412 that the software does. But this License is not limited to 11413 software manuals; it can be used for any textual work, regardless 11414 of subject matter or whether it is published as a printed book. 11415 We recommend this License principally for works whose purpose is 11416 instruction or reference. 11417 11418 1. APPLICABILITY AND DEFINITIONS 11419 11420 This License applies to any manual or other work, in any medium, 11421 that contains a notice placed by the copyright holder saying it 11422 can be distributed under the terms of this License. Such a notice 11423 grants a world-wide, royalty-free license, unlimited in duration, 11424 to use that work under the conditions stated herein. The 11425 "Document", below, refers to any such manual or work. Any member 11426 of the public is a licensee, and is addressed as "you". You 11427 accept the license if you copy, modify or distribute the work in a 11428 way requiring permission under copyright law. 11429 11430 A "Modified Version" of the Document means any work containing the 11431 Document or a portion of it, either copied verbatim, or with 11432 modifications and/or translated into another language. 11433 11434 A "Secondary Section" is a named appendix or a front-matter section 11435 of the Document that deals exclusively with the relationship of the 11436 publishers or authors of the Document to the Document's overall 11437 subject (or to related matters) and contains nothing that could 11438 fall directly within that overall subject. (Thus, if the Document 11439 is in part a textbook of mathematics, a Secondary Section may not 11440 explain any mathematics.) The relationship could be a matter of 11441 historical connection with the subject or with related matters, or 11442 of legal, commercial, philosophical, ethical or political position 11443 regarding them. 11444 11445 The "Invariant Sections" are certain Secondary Sections whose 11446 titles are designated, as being those of Invariant Sections, in 11447 the notice that says that the Document is released under this 11448 License. If a section does not fit the above definition of 11449 Secondary then it is not allowed to be designated as Invariant. 11450 The Document may contain zero Invariant Sections. If the Document 11451 does not identify any Invariant Sections then there are none. 11452 11453 The "Cover Texts" are certain short passages of text that are 11454 listed, as Front-Cover Texts or Back-Cover Texts, in the notice 11455 that says that the Document is released under this License. A 11456 Front-Cover Text may be at most 5 words, and a Back-Cover Text may 11457 be at most 25 words. 11458 11459 A "Transparent" copy of the Document means a machine-readable copy, 11460 represented in a format whose specification is available to the 11461 general public, that is suitable for revising the document 11462 straightforwardly with generic text editors or (for images 11463 composed of pixels) generic paint programs or (for drawings) some 11464 widely available drawing editor, and that is suitable for input to 11465 text formatters or for automatic translation to a variety of 11466 formats suitable for input to text formatters. A copy made in an 11467 otherwise Transparent file format whose markup, or absence of 11468 markup, has been arranged to thwart or discourage subsequent 11469 modification by readers is not Transparent. An image format is 11470 not Transparent if used for any substantial amount of text. A 11471 copy that is not "Transparent" is called "Opaque". 11472 11473 Examples of suitable formats for Transparent copies include plain 11474 ASCII without markup, Texinfo input format, LaTeX input format, 11475 SGML or XML using a publicly available DTD, and 11476 standard-conforming simple HTML, PostScript or PDF designed for 11477 human modification. Examples of transparent image formats include 11478 PNG, XCF and JPG. Opaque formats include proprietary formats that 11479 can be read and edited only by proprietary word processors, SGML or 11480 XML for which the DTD and/or processing tools are not generally 11481 available, and the machine-generated HTML, PostScript or PDF 11482 produced by some word processors for output purposes only. 11483 11484 The "Title Page" means, for a printed book, the title page itself, 11485 plus such following pages as are needed to hold, legibly, the 11486 material this License requires to appear in the title page. For 11487 works in formats which do not have any title page as such, "Title 11488 Page" means the text near the most prominent appearance of the 11489 work's title, preceding the beginning of the body of the text. 11490 11491 The "publisher" means any person or entity that distributes copies 11492 of the Document to the public. 11493 11494 A section "Entitled XYZ" means a named subunit of the Document 11495 whose title either is precisely XYZ or contains XYZ in parentheses 11496 following text that translates XYZ in another language. (Here XYZ 11497 stands for a specific section name mentioned below, such as 11498 "Acknowledgements", "Dedications", "Endorsements", or "History".) 11499 To "Preserve the Title" of such a section when you modify the 11500 Document means that it remains a section "Entitled XYZ" according 11501 to this definition. 11502 11503 The Document may include Warranty Disclaimers next to the notice 11504 which states that this License applies to the Document. These 11505 Warranty Disclaimers are considered to be included by reference in 11506 this License, but only as regards disclaiming warranties: any other 11507 implication that these Warranty Disclaimers may have is void and 11508 has no effect on the meaning of this License. 11509 11510 2. VERBATIM COPYING 11511 11512 You may copy and distribute the Document in any medium, either 11513 commercially or noncommercially, provided that this License, the 11514 copyright notices, and the license notice saying this License 11515 applies to the Document are reproduced in all copies, and that you 11516 add no other conditions whatsoever to those of this License. You 11517 may not use technical measures to obstruct or control the reading 11518 or further copying of the copies you make or distribute. However, 11519 you may accept compensation in exchange for copies. If you 11520 distribute a large enough number of copies you must also follow 11521 the conditions in section 3. 11522 11523 You may also lend copies, under the same conditions stated above, 11524 and you may publicly display copies. 11525 11526 3. COPYING IN QUANTITY 11527 11528 If you publish printed copies (or copies in media that commonly 11529 have printed covers) of the Document, numbering more than 100, and 11530 the Document's license notice requires Cover Texts, you must 11531 enclose the copies in covers that carry, clearly and legibly, all 11532 these Cover Texts: Front-Cover Texts on the front cover, and 11533 Back-Cover Texts on the back cover. Both covers must also clearly 11534 and legibly identify you as the publisher of these copies. The 11535 front cover must present the full title with all words of the 11536 title equally prominent and visible. You may add other material 11537 on the covers in addition. Copying with changes limited to the 11538 covers, as long as they preserve the title of the Document and 11539 satisfy these conditions, can be treated as verbatim copying in 11540 other respects. 11541 11542 If the required texts for either cover are too voluminous to fit 11543 legibly, you should put the first ones listed (as many as fit 11544 reasonably) on the actual cover, and continue the rest onto 11545 adjacent pages. 11546 11547 If you publish or distribute Opaque copies of the Document 11548 numbering more than 100, you must either include a 11549 machine-readable Transparent copy along with each Opaque copy, or 11550 state in or with each Opaque copy a computer-network location from 11551 which the general network-using public has access to download 11552 using public-standard network protocols a complete Transparent 11553 copy of the Document, free of added material. If you use the 11554 latter option, you must take reasonably prudent steps, when you 11555 begin distribution of Opaque copies in quantity, to ensure that 11556 this Transparent copy will remain thus accessible at the stated 11557 location until at least one year after the last time you 11558 distribute an Opaque copy (directly or through your agents or 11559 retailers) of that edition to the public. 11560 11561 It is requested, but not required, that you contact the authors of 11562 the Document well before redistributing any large number of 11563 copies, to give them a chance to provide you with an updated 11564 version of the Document. 11565 11566 4. MODIFICATIONS 11567 11568 You may copy and distribute a Modified Version of the Document 11569 under the conditions of sections 2 and 3 above, provided that you 11570 release the Modified Version under precisely this License, with 11571 the Modified Version filling the role of the Document, thus 11572 licensing distribution and modification of the Modified Version to 11573 whoever possesses a copy of it. In addition, you must do these 11574 things in the Modified Version: 11575 11576 A. Use in the Title Page (and on the covers, if any) a title 11577 distinct from that of the Document, and from those of 11578 previous versions (which should, if there were any, be listed 11579 in the History section of the Document). You may use the 11580 same title as a previous version if the original publisher of 11581 that version gives permission. 11582 11583 B. List on the Title Page, as authors, one or more persons or 11584 entities responsible for authorship of the modifications in 11585 the Modified Version, together with at least five of the 11586 principal authors of the Document (all of its principal 11587 authors, if it has fewer than five), unless they release you 11588 from this requirement. 11589 11590 C. State on the Title page the name of the publisher of the 11591 Modified Version, as the publisher. 11592 11593 D. Preserve all the copyright notices of the Document. 11594 11595 E. Add an appropriate copyright notice for your modifications 11596 adjacent to the other copyright notices. 11597 11598 F. Include, immediately after the copyright notices, a license 11599 notice giving the public permission to use the Modified 11600 Version under the terms of this License, in the form shown in 11601 the Addendum below. 11602 11603 G. Preserve in that license notice the full lists of Invariant 11604 Sections and required Cover Texts given in the Document's 11605 license notice. 11606 11607 H. Include an unaltered copy of this License. 11608 11609 I. Preserve the section Entitled "History", Preserve its Title, 11610 and add to it an item stating at least the title, year, new 11611 authors, and publisher of the Modified Version as given on 11612 the Title Page. If there is no section Entitled "History" in 11613 the Document, create one stating the title, year, authors, 11614 and publisher of the Document as given on its Title Page, 11615 then add an item describing the Modified Version as stated in 11616 the previous sentence. 11617 11618 J. Preserve the network location, if any, given in the Document 11619 for public access to a Transparent copy of the Document, and 11620 likewise the network locations given in the Document for 11621 previous versions it was based on. These may be placed in 11622 the "History" section. You may omit a network location for a 11623 work that was published at least four years before the 11624 Document itself, or if the original publisher of the version 11625 it refers to gives permission. 11626 11627 K. For any section Entitled "Acknowledgements" or "Dedications", 11628 Preserve the Title of the section, and preserve in the 11629 section all the substance and tone of each of the contributor 11630 acknowledgements and/or dedications given therein. 11631 11632 L. Preserve all the Invariant Sections of the Document, 11633 unaltered in their text and in their titles. Section numbers 11634 or the equivalent are not considered part of the section 11635 titles. 11636 11637 M. Delete any section Entitled "Endorsements". Such a section 11638 may not be included in the Modified Version. 11639 11640 N. Do not retitle any existing section to be Entitled 11641 "Endorsements" or to conflict in title with any Invariant 11642 Section. 11643 11644 O. Preserve any Warranty Disclaimers. 11645 11646 If the Modified Version includes new front-matter sections or 11647 appendices that qualify as Secondary Sections and contain no 11648 material copied from the Document, you may at your option 11649 designate some or all of these sections as invariant. To do this, 11650 add their titles to the list of Invariant Sections in the Modified 11651 Version's license notice. These titles must be distinct from any 11652 other section titles. 11653 11654 You may add a section Entitled "Endorsements", provided it contains 11655 nothing but endorsements of your Modified Version by various 11656 parties--for example, statements of peer review or that the text 11657 has been approved by an organization as the authoritative 11658 definition of a standard. 11659 11660 You may add a passage of up to five words as a Front-Cover Text, 11661 and a passage of up to 25 words as a Back-Cover Text, to the end 11662 of the list of Cover Texts in the Modified Version. Only one 11663 passage of Front-Cover Text and one of Back-Cover Text may be 11664 added by (or through arrangements made by) any one entity. If the 11665 Document already includes a cover text for the same cover, 11666 previously added by you or by arrangement made by the same entity 11667 you are acting on behalf of, you may not add another; but you may 11668 replace the old one, on explicit permission from the previous 11669 publisher that added the old one. 11670 11671 The author(s) and publisher(s) of the Document do not by this 11672 License give permission to use their names for publicity for or to 11673 assert or imply endorsement of any Modified Version. 11674 11675 5. COMBINING DOCUMENTS 11676 11677 You may combine the Document with other documents released under 11678 this License, under the terms defined in section 4 above for 11679 modified versions, provided that you include in the combination 11680 all of the Invariant Sections of all of the original documents, 11681 unmodified, and list them all as Invariant Sections of your 11682 combined work in its license notice, and that you preserve all 11683 their Warranty Disclaimers. 11684 11685 The combined work need only contain one copy of this License, and 11686 multiple identical Invariant Sections may be replaced with a single 11687 copy. If there are multiple Invariant Sections with the same name 11688 but different contents, make the title of each such section unique 11689 by adding at the end of it, in parentheses, the name of the 11690 original author or publisher of that section if known, or else a 11691 unique number. Make the same adjustment to the section titles in 11692 the list of Invariant Sections in the license notice of the 11693 combined work. 11694 11695 In the combination, you must combine any sections Entitled 11696 "History" in the various original documents, forming one section 11697 Entitled "History"; likewise combine any sections Entitled 11698 "Acknowledgements", and any sections Entitled "Dedications". You 11699 must delete all sections Entitled "Endorsements." 11700 11701 6. COLLECTIONS OF DOCUMENTS 11702 11703 You may make a collection consisting of the Document and other 11704 documents released under this License, and replace the individual 11705 copies of this License in the various documents with a single copy 11706 that is included in the collection, provided that you follow the 11707 rules of this License for verbatim copying of each of the 11708 documents in all other respects. 11709 11710 You may extract a single document from such a collection, and 11711 distribute it individually under this License, provided you insert 11712 a copy of this License into the extracted document, and follow 11713 this License in all other respects regarding verbatim copying of 11714 that document. 11715 11716 7. AGGREGATION WITH INDEPENDENT WORKS 11717 11718 A compilation of the Document or its derivatives with other 11719 separate and independent documents or works, in or on a volume of 11720 a storage or distribution medium, is called an "aggregate" if the 11721 copyright resulting from the compilation is not used to limit the 11722 legal rights of the compilation's users beyond what the individual 11723 works permit. When the Document is included in an aggregate, this 11724 License does not apply to the other works in the aggregate which 11725 are not themselves derivative works of the Document. 11726 11727 If the Cover Text requirement of section 3 is applicable to these 11728 copies of the Document, then if the Document is less than one half 11729 of the entire aggregate, the Document's Cover Texts may be placed 11730 on covers that bracket the Document within the aggregate, or the 11731 electronic equivalent of covers if the Document is in electronic 11732 form. Otherwise they must appear on printed covers that bracket 11733 the whole aggregate. 11734 11735 8. TRANSLATION 11736 11737 Translation is considered a kind of modification, so you may 11738 distribute translations of the Document under the terms of section 11739 4. Replacing Invariant Sections with translations requires special 11740 permission from their copyright holders, but you may include 11741 translations of some or all Invariant Sections in addition to the 11742 original versions of these Invariant Sections. You may include a 11743 translation of this License, and all the license notices in the 11744 Document, and any Warranty Disclaimers, provided that you also 11745 include the original English version of this License and the 11746 original versions of those notices and disclaimers. In case of a 11747 disagreement between the translation and the original version of 11748 this License or a notice or disclaimer, the original version will 11749 prevail. 11750 11751 If a section in the Document is Entitled "Acknowledgements", 11752 "Dedications", or "History", the requirement (section 4) to 11753 Preserve its Title (section 1) will typically require changing the 11754 actual title. 11755 11756 9. TERMINATION 11757 11758 You may not copy, modify, sublicense, or distribute the Document 11759 except as expressly provided under this License. Any attempt 11760 otherwise to copy, modify, sublicense, or distribute it is void, 11761 and will automatically terminate your rights under this License. 11762 11763 However, if you cease all violation of this License, then your 11764 license from a particular copyright holder is reinstated (a) 11765 provisionally, unless and until the copyright holder explicitly 11766 and finally terminates your license, and (b) permanently, if the 11767 copyright holder fails to notify you of the violation by some 11768 reasonable means prior to 60 days after the cessation. 11769 11770 Moreover, your license from a particular copyright holder is 11771 reinstated permanently if the copyright holder notifies you of the 11772 violation by some reasonable means, this is the first time you have 11773 received notice of violation of this License (for any work) from 11774 that copyright holder, and you cure the violation prior to 30 days 11775 after your receipt of the notice. 11776 11777 Termination of your rights under this section does not terminate 11778 the licenses of parties who have received copies or rights from 11779 you under this License. If your rights have been terminated and 11780 not permanently reinstated, receipt of a copy of some or all of 11781 the same material does not give you any rights to use it. 11782 11783 10. FUTURE REVISIONS OF THIS LICENSE 11784 11785 The Free Software Foundation may publish new, revised versions of 11786 the GNU Free Documentation License from time to time. Such new 11787 versions will be similar in spirit to the present version, but may 11788 differ in detail to address new problems or concerns. See 11789 `http://www.gnu.org/copyleft/'. 11790 11791 Each version of the License is given a distinguishing version 11792 number. If the Document specifies that a particular numbered 11793 version of this License "or any later version" applies to it, you 11794 have the option of following the terms and conditions either of 11795 that specified version or of any later version that has been 11796 published (not as a draft) by the Free Software Foundation. If 11797 the Document does not specify a version number of this License, 11798 you may choose any version ever published (not as a draft) by the 11799 Free Software Foundation. If the Document specifies that a proxy 11800 can decide which future versions of this License can be used, that 11801 proxy's public statement of acceptance of a version permanently 11802 authorizes you to choose that version for the Document. 11803 11804 11. RELICENSING 11805 11806 "Massive Multiauthor Collaboration Site" (or "MMC Site") means any 11807 World Wide Web server that publishes copyrightable works and also 11808 provides prominent facilities for anybody to edit those works. A 11809 public wiki that anybody can edit is an example of such a server. 11810 A "Massive Multiauthor Collaboration" (or "MMC") contained in the 11811 site means any set of copyrightable works thus published on the MMC 11812 site. 11813 11814 "CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0 11815 license published by Creative Commons Corporation, a not-for-profit 11816 corporation with a principal place of business in San Francisco, 11817 California, as well as future copyleft versions of that license 11818 published by that same organization. 11819 11820 "Incorporate" means to publish or republish a Document, in whole or 11821 in part, as part of another Document. 11822 11823 An MMC is "eligible for relicensing" if it is licensed under this 11824 License, and if all works that were first published under this 11825 License somewhere other than this MMC, and subsequently 11826 incorporated in whole or in part into the MMC, (1) had no cover 11827 texts or invariant sections, and (2) were thus incorporated prior 11828 to November 1, 2008. 11829 11830 The operator of an MMC Site may republish an MMC contained in the 11831 site under CC-BY-SA on the same site at any time before August 1, 11832 2009, provided the MMC is eligible for relicensing. 11833 11834 11835ADDENDUM: How to use this License for your documents 11836==================================================== 11837 11838To use this License in a document you have written, include a copy of 11839the License in the document and put the following copyright and license 11840notices just after the title page: 11841 11842 Copyright (C) YEAR YOUR NAME. 11843 Permission is granted to copy, distribute and/or modify this document 11844 under the terms of the GNU Free Documentation License, Version 1.3 11845 or any later version published by the Free Software Foundation; 11846 with no Invariant Sections, no Front-Cover Texts, and no Back-Cover 11847 Texts. A copy of the license is included in the section entitled ``GNU 11848 Free Documentation License''. 11849 11850 If you have Invariant Sections, Front-Cover Texts and Back-Cover 11851Texts, replace the "with...Texts." line with this: 11852 11853 with the Invariant Sections being LIST THEIR TITLES, with 11854 the Front-Cover Texts being LIST, and with the Back-Cover Texts 11855 being LIST. 11856 11857 If you have Invariant Sections without Cover Texts, or some other 11858combination of the three, merge those two alternatives to suit the 11859situation. 11860 11861 If your document contains nontrivial examples of program code, we 11862recommend releasing these examples in parallel under your choice of 11863free software license, such as the GNU General Public License, to 11864permit their use in free software. 11865 11866 11867File: bfd.info, Node: BFD Index, Prev: GNU Free Documentation License, Up: Top 11868 11869BFD Index 11870********* 11871 11872[index] 11873* Menu: 11874 11875* _bfd_final_link_relocate: Relocating the section contents. 11876 (line 22) 11877* _bfd_generic_link_add_archive_symbols: Adding symbols from an archive. 11878 (line 15) 11879* _bfd_generic_link_add_one_symbol: Adding symbols from an object file. 11880 (line 19) 11881* _bfd_generic_link_check_relocs: Writing the symbol table. 11882 (line 114) 11883* _bfd_generic_make_empty_symbol: symbol handling functions. 11884 (line 92) 11885* _bfd_generic_verify_endian_match: Writing the symbol table. 11886 (line 143) 11887* _bfd_link_add_symbols in target vector: Adding Symbols to the Hash Table. 11888 (line 6) 11889* _bfd_link_final_link in target vector: Performing the Final Link. 11890 (line 6) 11891* _bfd_link_hash_table_create in target vector: Creating a Linker Hash Table. 11892 (line 6) 11893* _bfd_relocate_contents: Relocating the section contents. 11894 (line 22) 11895* aout_SIZE_machine_type: aout. (line 147) 11896* aout_SIZE_mkobject: aout. (line 139) 11897* aout_SIZE_new_section_hook: aout. (line 177) 11898* aout_SIZE_set_arch_mach: aout. (line 164) 11899* aout_SIZE_some_aout_object_p: aout. (line 125) 11900* aout_SIZE_swap_exec_header_in: aout. (line 101) 11901* aout_SIZE_swap_exec_header_out: aout. (line 113) 11902* arelent_chain: typedef arelent. (line 336) 11903* BFD: Overview. (line 6) 11904* BFD canonical format: Canonical format. (line 11) 11905* bfd_alloc: Opening and Closing. 11906 (line 239) 11907* bfd_alloc2: Opening and Closing. 11908 (line 248) 11909* bfd_alt_mach_code: Miscellaneous. (line 290) 11910* bfd_arch_bits_per_address: Architectures. (line 630) 11911* bfd_arch_bits_per_byte: Architectures. (line 622) 11912* bfd_arch_default_fill: Architectures. (line 711) 11913* bfd_arch_get_compatible: Architectures. (line 565) 11914* bfd_arch_list: Architectures. (line 556) 11915* bfd_arch_mach_octets_per_byte: Architectures. (line 699) 11916* BFD_ARELOC_BFIN_ADD: howto manager. (line 1208) 11917* BFD_ARELOC_BFIN_ADDR: howto manager. (line 1259) 11918* BFD_ARELOC_BFIN_AND: howto manager. (line 1229) 11919* BFD_ARELOC_BFIN_COMP: howto manager. (line 1250) 11920* BFD_ARELOC_BFIN_CONST: howto manager. (line 1205) 11921* BFD_ARELOC_BFIN_DIV: howto manager. (line 1217) 11922* BFD_ARELOC_BFIN_HWPAGE: howto manager. (line 1256) 11923* BFD_ARELOC_BFIN_LAND: howto manager. (line 1238) 11924* BFD_ARELOC_BFIN_LEN: howto manager. (line 1244) 11925* BFD_ARELOC_BFIN_LOR: howto manager. (line 1241) 11926* BFD_ARELOC_BFIN_LSHIFT: howto manager. (line 1223) 11927* BFD_ARELOC_BFIN_MOD: howto manager. (line 1220) 11928* BFD_ARELOC_BFIN_MULT: howto manager. (line 1214) 11929* BFD_ARELOC_BFIN_NEG: howto manager. (line 1247) 11930* BFD_ARELOC_BFIN_OR: howto manager. (line 1232) 11931* BFD_ARELOC_BFIN_PAGE: howto manager. (line 1253) 11932* BFD_ARELOC_BFIN_PUSH: howto manager. (line 1202) 11933* BFD_ARELOC_BFIN_RSHIFT: howto manager. (line 1226) 11934* BFD_ARELOC_BFIN_SUB: howto manager. (line 1211) 11935* BFD_ARELOC_BFIN_XOR: howto manager. (line 1235) 11936* bfd_cache_close: File Caching. (line 26) 11937* bfd_cache_close_all: File Caching. (line 39) 11938* bfd_cache_init: File Caching. (line 18) 11939* bfd_calc_gnu_debuglink_crc32: Opening and Closing. 11940 (line 275) 11941* bfd_canonicalize_reloc: Miscellaneous. (line 19) 11942* bfd_canonicalize_symtab: symbol handling functions. 11943 (line 50) 11944* bfd_check_compression_header: Miscellaneous. (line 362) 11945* bfd_check_format: Formats. (line 21) 11946* bfd_check_format_matches: Formats. (line 52) 11947* bfd_check_overflow: typedef arelent. (line 348) 11948* bfd_close: Opening and Closing. 11949 (line 161) 11950* bfd_close_all_done: Opening and Closing. 11951 (line 179) 11952* bfd_coff_backend_data: coff. (line 308) 11953* bfd_convert_section_contents: Miscellaneous. (line 398) 11954* bfd_convert_section_size: Miscellaneous. (line 388) 11955* bfd_copy_private_bfd_data: Miscellaneous. (line 160) 11956* bfd_copy_private_header_data: Miscellaneous. (line 142) 11957* bfd_copy_private_section_data: section prototypes. (line 288) 11958* bfd_copy_private_symbol_data: symbol handling functions. 11959 (line 140) 11960* bfd_core_file_failing_command: Core Files. (line 12) 11961* bfd_core_file_failing_signal: Core Files. (line 21) 11962* bfd_core_file_pid: Core Files. (line 30) 11963* bfd_create: Opening and Closing. 11964 (line 198) 11965* bfd_create_gnu_debuglink_section: Opening and Closing. 11966 (line 392) 11967* bfd_decode_symclass: symbol handling functions. 11968 (line 111) 11969* bfd_default_arch_struct: Architectures. (line 577) 11970* bfd_default_compatible: Architectures. (line 639) 11971* bfd_default_reloc_type_lookup: howto manager. (line 3800) 11972* bfd_default_scan: Architectures. (line 648) 11973* bfd_default_set_arch_mach: Architectures. (line 595) 11974* bfd_demangle: Miscellaneous. (line 341) 11975* bfd_emul_get_commonpagesize: Miscellaneous. (line 321) 11976* bfd_emul_get_maxpagesize: Miscellaneous. (line 301) 11977* bfd_emul_set_commonpagesize: Miscellaneous. (line 332) 11978* bfd_emul_set_maxpagesize: Miscellaneous. (line 312) 11979* bfd_errmsg: Error reporting. (line 67) 11980* bfd_fdopenr: Opening and Closing. 11981 (line 57) 11982* bfd_fill_in_gnu_debuglink_section: Opening and Closing. 11983 (line 406) 11984* bfd_find_target: bfd_target. (line 475) 11985* bfd_find_version_for_sym: Writing the symbol table. 11986 (line 81) 11987* bfd_flavour_name: bfd_target. (line 538) 11988* bfd_follow_build_id_debuglink: Opening and Closing. 11989 (line 464) 11990* bfd_follow_gnu_debugaltlink: Opening and Closing. 11991 (line 372) 11992* bfd_follow_gnu_debuglink: Opening and Closing. 11993 (line 351) 11994* bfd_fopen: Opening and Closing. 11995 (line 12) 11996* bfd_format_string: Formats. (line 79) 11997* bfd_generic_define_common_symbol: Writing the symbol table. 11998 (line 68) 11999* bfd_generic_discard_group: section prototypes. (line 314) 12000* bfd_generic_gc_sections: howto manager. (line 3831) 12001* bfd_generic_get_relocated_section_contents: howto manager. (line 3861) 12002* bfd_generic_is_group_section: section prototypes. (line 306) 12003* bfd_generic_lookup_section_flags: howto manager. (line 3841) 12004* bfd_generic_merge_sections: howto manager. (line 3851) 12005* bfd_generic_relax_section: howto manager. (line 3818) 12006* bfd_get_alt_debug_link_info: Opening and Closing. 12007 (line 300) 12008* bfd_get_arch: Architectures. (line 606) 12009* bfd_get_arch_info: Architectures. (line 658) 12010* bfd_get_arch_size: Miscellaneous. (line 63) 12011* bfd_get_compression_header_size: Miscellaneous. (line 377) 12012* bfd_get_debug_link_info: Opening and Closing. 12013 (line 289) 12014* bfd_get_error: Error reporting. (line 48) 12015* bfd_get_gp_size: Miscellaneous. (line 106) 12016* bfd_get_linker_section: section prototypes. (line 38) 12017* bfd_get_mach: Architectures. (line 614) 12018* bfd_get_mtime: Miscellaneous. (line 451) 12019* bfd_get_next_mapent: Archives. (line 58) 12020* bfd_get_next_section_by_name: section prototypes. (line 26) 12021* bfd_get_next_section_id: section prototypes. (line 156) 12022* bfd_get_reloc_code_name: howto manager. (line 3809) 12023* bfd_get_reloc_size: typedef arelent. (line 327) 12024* bfd_get_reloc_upper_bound: Miscellaneous. (line 9) 12025* bfd_get_section_by_name: section prototypes. (line 17) 12026* bfd_get_section_by_name_if: section prototypes. (line 47) 12027* bfd_get_section_contents: section prototypes. (line 261) 12028* bfd_get_sign_extend_vma: Miscellaneous. (line 78) 12029* bfd_get_size <1>: Miscellaneous. (line 460) 12030* bfd_get_size: Internal. (line 25) 12031* bfd_get_symtab_upper_bound: symbol handling functions. 12032 (line 6) 12033* bfd_get_target_info: bfd_target. (line 491) 12034* bfd_get_unique_section_name: section prototypes. (line 66) 12035* bfd_h_put_size: Internal. (line 97) 12036* bfd_hash_allocate: Creating and Freeing a Hash Table. 12037 (line 17) 12038* bfd_hash_lookup: Looking Up or Entering a String. 12039 (line 6) 12040* bfd_hash_newfunc: Creating and Freeing a Hash Table. 12041 (line 12) 12042* bfd_hash_set_default_size: Creating and Freeing a Hash Table. 12043 (line 25) 12044* bfd_hash_table_free: Creating and Freeing a Hash Table. 12045 (line 21) 12046* bfd_hash_table_init: Creating and Freeing a Hash Table. 12047 (line 6) 12048* bfd_hash_table_init_n: Creating and Freeing a Hash Table. 12049 (line 6) 12050* bfd_hash_traverse: Traversing a Hash Table. 12051 (line 6) 12052* bfd_hide_sym_by_version: Writing the symbol table. 12053 (line 93) 12054* bfd_init: Initialization. (line 11) 12055* bfd_install_relocation: typedef arelent. (line 389) 12056* bfd_is_local_label: symbol handling functions. 12057 (line 17) 12058* bfd_is_local_label_name: symbol handling functions. 12059 (line 26) 12060* bfd_is_target_special_symbol: symbol handling functions. 12061 (line 38) 12062* bfd_is_undefined_symclass: symbol handling functions. 12063 (line 120) 12064* bfd_iterate_over_targets: bfd_target. (line 526) 12065* bfd_link_check_relocs: Writing the symbol table. 12066 (line 103) 12067* bfd_link_split_section: Writing the symbol table. 12068 (line 44) 12069* bfd_log2: Internal. (line 164) 12070* bfd_lookup_arch: Architectures. (line 666) 12071* bfd_make_debug_symbol: symbol handling functions. 12072 (line 102) 12073* bfd_make_empty_symbol: symbol handling functions. 12074 (line 78) 12075* bfd_make_readable: Opening and Closing. 12076 (line 225) 12077* bfd_make_section: section prototypes. (line 145) 12078* bfd_make_section_anyway: section prototypes. (line 116) 12079* bfd_make_section_anyway_with_flags: section prototypes. (line 98) 12080* bfd_make_section_old_way: section prototypes. (line 78) 12081* bfd_make_section_with_flags: section prototypes. (line 132) 12082* bfd_make_writable: Opening and Closing. 12083 (line 211) 12084* bfd_malloc_and_get_section: section prototypes. (line 278) 12085* bfd_map_over_sections: section prototypes. (line 188) 12086* bfd_merge_private_bfd_data: Writing the symbol table. 12087 (line 125) 12088* bfd_mmap: Miscellaneous. (line 489) 12089* bfd_octets_per_byte: Architectures. (line 689) 12090* bfd_open_file: File Caching. (line 52) 12091* bfd_openr: Opening and Closing. 12092 (line 38) 12093* bfd_openr_iovec: Opening and Closing. 12094 (line 95) 12095* bfd_openr_next_archived_file: Archives. (line 84) 12096* bfd_openstreamr: Opening and Closing. 12097 (line 83) 12098* bfd_openw: Opening and Closing. 12099 (line 146) 12100* bfd_perform_relocation: typedef arelent. (line 364) 12101* bfd_perror: Error reporting. (line 76) 12102* bfd_print_symbol_vandf: symbol handling functions. 12103 (line 70) 12104* bfd_printable_arch_mach: Architectures. (line 677) 12105* bfd_printable_name: Architectures. (line 537) 12106* bfd_put_size: Internal. (line 22) 12107* BFD_RELOC_12_PCREL: howto manager. (line 39) 12108* BFD_RELOC_14: howto manager. (line 31) 12109* BFD_RELOC_16: howto manager. (line 30) 12110* BFD_RELOC_16_BASEREL: howto manager. (line 99) 12111* BFD_RELOC_16_GOT_PCREL: howto manager. (line 52) 12112* BFD_RELOC_16_GOTOFF: howto manager. (line 55) 12113* BFD_RELOC_16_PCREL: howto manager. (line 38) 12114* BFD_RELOC_16_PCREL_S2: howto manager. (line 111) 12115* BFD_RELOC_16_PLT_PCREL: howto manager. (line 63) 12116* BFD_RELOC_16_PLTOFF: howto manager. (line 67) 12117* BFD_RELOC_16C_ABS20: howto manager. (line 2596) 12118* BFD_RELOC_16C_ABS20_C: howto manager. (line 2597) 12119* BFD_RELOC_16C_ABS24: howto manager. (line 2598) 12120* BFD_RELOC_16C_ABS24_C: howto manager. (line 2599) 12121* BFD_RELOC_16C_DISP04: howto manager. (line 2576) 12122* BFD_RELOC_16C_DISP04_C: howto manager. (line 2577) 12123* BFD_RELOC_16C_DISP08: howto manager. (line 2578) 12124* BFD_RELOC_16C_DISP08_C: howto manager. (line 2579) 12125* BFD_RELOC_16C_DISP16: howto manager. (line 2580) 12126* BFD_RELOC_16C_DISP16_C: howto manager. (line 2581) 12127* BFD_RELOC_16C_DISP24: howto manager. (line 2582) 12128* BFD_RELOC_16C_DISP24_C: howto manager. (line 2583) 12129* BFD_RELOC_16C_DISP24a: howto manager. (line 2584) 12130* BFD_RELOC_16C_DISP24a_C: howto manager. (line 2585) 12131* BFD_RELOC_16C_IMM04: howto manager. (line 2600) 12132* BFD_RELOC_16C_IMM04_C: howto manager. (line 2601) 12133* BFD_RELOC_16C_IMM16: howto manager. (line 2602) 12134* BFD_RELOC_16C_IMM16_C: howto manager. (line 2603) 12135* BFD_RELOC_16C_IMM20: howto manager. (line 2604) 12136* BFD_RELOC_16C_IMM20_C: howto manager. (line 2605) 12137* BFD_RELOC_16C_IMM24: howto manager. (line 2606) 12138* BFD_RELOC_16C_IMM24_C: howto manager. (line 2607) 12139* BFD_RELOC_16C_IMM32: howto manager. (line 2608) 12140* BFD_RELOC_16C_IMM32_C: howto manager. (line 2609) 12141* BFD_RELOC_16C_NUM08: howto manager. (line 2570) 12142* BFD_RELOC_16C_NUM08_C: howto manager. (line 2571) 12143* BFD_RELOC_16C_NUM16: howto manager. (line 2572) 12144* BFD_RELOC_16C_NUM16_C: howto manager. (line 2573) 12145* BFD_RELOC_16C_NUM32: howto manager. (line 2574) 12146* BFD_RELOC_16C_NUM32_C: howto manager. (line 2575) 12147* BFD_RELOC_16C_REG04: howto manager. (line 2586) 12148* BFD_RELOC_16C_REG04_C: howto manager. (line 2587) 12149* BFD_RELOC_16C_REG04a: howto manager. (line 2588) 12150* BFD_RELOC_16C_REG04a_C: howto manager. (line 2589) 12151* BFD_RELOC_16C_REG14: howto manager. (line 2590) 12152* BFD_RELOC_16C_REG14_C: howto manager. (line 2591) 12153* BFD_RELOC_16C_REG16: howto manager. (line 2592) 12154* BFD_RELOC_16C_REG16_C: howto manager. (line 2593) 12155* BFD_RELOC_16C_REG20: howto manager. (line 2594) 12156* BFD_RELOC_16C_REG20_C: howto manager. (line 2595) 12157* BFD_RELOC_23_PCREL_S2: howto manager. (line 112) 12158* BFD_RELOC_24: howto manager. (line 29) 12159* BFD_RELOC_24_PCREL: howto manager. (line 37) 12160* BFD_RELOC_24_PLT_PCREL: howto manager. (line 62) 12161* BFD_RELOC_26: howto manager. (line 28) 12162* BFD_RELOC_32: howto manager. (line 27) 12163* BFD_RELOC_32_BASEREL: howto manager. (line 98) 12164* BFD_RELOC_32_GOT_PCREL: howto manager. (line 51) 12165* BFD_RELOC_32_GOTOFF: howto manager. (line 54) 12166* BFD_RELOC_32_PCREL: howto manager. (line 36) 12167* BFD_RELOC_32_PCREL_S2: howto manager. (line 110) 12168* BFD_RELOC_32_PLT_PCREL: howto manager. (line 61) 12169* BFD_RELOC_32_PLTOFF: howto manager. (line 66) 12170* BFD_RELOC_32_SECREL: howto manager. (line 48) 12171* BFD_RELOC_386_COPY: howto manager. (line 592) 12172* BFD_RELOC_386_GLOB_DAT: howto manager. (line 593) 12173* BFD_RELOC_386_GOT32: howto manager. (line 590) 12174* BFD_RELOC_386_GOT32X: howto manager. (line 614) 12175* BFD_RELOC_386_GOTOFF: howto manager. (line 596) 12176* BFD_RELOC_386_GOTPC: howto manager. (line 597) 12177* BFD_RELOC_386_IRELATIVE: howto manager. (line 613) 12178* BFD_RELOC_386_JUMP_SLOT: howto manager. (line 594) 12179* BFD_RELOC_386_PLT32: howto manager. (line 591) 12180* BFD_RELOC_386_RELATIVE: howto manager. (line 595) 12181* BFD_RELOC_386_TLS_DESC: howto manager. (line 612) 12182* BFD_RELOC_386_TLS_DESC_CALL: howto manager. (line 611) 12183* BFD_RELOC_386_TLS_DTPMOD32: howto manager. (line 607) 12184* BFD_RELOC_386_TLS_DTPOFF32: howto manager. (line 608) 12185* BFD_RELOC_386_TLS_GD: howto manager. (line 602) 12186* BFD_RELOC_386_TLS_GOTDESC: howto manager. (line 610) 12187* BFD_RELOC_386_TLS_GOTIE: howto manager. (line 600) 12188* BFD_RELOC_386_TLS_IE: howto manager. (line 599) 12189* BFD_RELOC_386_TLS_IE_32: howto manager. (line 605) 12190* BFD_RELOC_386_TLS_LDM: howto manager. (line 603) 12191* BFD_RELOC_386_TLS_LDO_32: howto manager. (line 604) 12192* BFD_RELOC_386_TLS_LE: howto manager. (line 601) 12193* BFD_RELOC_386_TLS_LE_32: howto manager. (line 606) 12194* BFD_RELOC_386_TLS_TPOFF: howto manager. (line 598) 12195* BFD_RELOC_386_TLS_TPOFF32: howto manager. (line 609) 12196* BFD_RELOC_390_12: howto manager. (line 2179) 12197* BFD_RELOC_390_20: howto manager. (line 2291) 12198* BFD_RELOC_390_COPY: howto manager. (line 2188) 12199* BFD_RELOC_390_GLOB_DAT: howto manager. (line 2191) 12200* BFD_RELOC_390_GOT12: howto manager. (line 2182) 12201* BFD_RELOC_390_GOT16: howto manager. (line 2203) 12202* BFD_RELOC_390_GOT20: howto manager. (line 2292) 12203* BFD_RELOC_390_GOT64: howto manager. (line 2233) 12204* BFD_RELOC_390_GOTENT: howto manager. (line 2239) 12205* BFD_RELOC_390_GOTOFF64: howto manager. (line 2242) 12206* BFD_RELOC_390_GOTPC: howto manager. (line 2200) 12207* BFD_RELOC_390_GOTPCDBL: howto manager. (line 2230) 12208* BFD_RELOC_390_GOTPLT12: howto manager. (line 2245) 12209* BFD_RELOC_390_GOTPLT16: howto manager. (line 2248) 12210* BFD_RELOC_390_GOTPLT20: howto manager. (line 2293) 12211* BFD_RELOC_390_GOTPLT32: howto manager. (line 2251) 12212* BFD_RELOC_390_GOTPLT64: howto manager. (line 2254) 12213* BFD_RELOC_390_GOTPLTENT: howto manager. (line 2257) 12214* BFD_RELOC_390_IRELATIVE: howto manager. (line 2297) 12215* BFD_RELOC_390_JMP_SLOT: howto manager. (line 2194) 12216* BFD_RELOC_390_PC12DBL: howto manager. (line 2206) 12217* BFD_RELOC_390_PC16DBL: howto manager. (line 2212) 12218* BFD_RELOC_390_PC24DBL: howto manager. (line 2218) 12219* BFD_RELOC_390_PC32DBL: howto manager. (line 2224) 12220* BFD_RELOC_390_PLT12DBL: howto manager. (line 2209) 12221* BFD_RELOC_390_PLT16DBL: howto manager. (line 2215) 12222* BFD_RELOC_390_PLT24DBL: howto manager. (line 2221) 12223* BFD_RELOC_390_PLT32: howto manager. (line 2185) 12224* BFD_RELOC_390_PLT32DBL: howto manager. (line 2227) 12225* BFD_RELOC_390_PLT64: howto manager. (line 2236) 12226* BFD_RELOC_390_PLTOFF16: howto manager. (line 2260) 12227* BFD_RELOC_390_PLTOFF32: howto manager. (line 2263) 12228* BFD_RELOC_390_PLTOFF64: howto manager. (line 2266) 12229* BFD_RELOC_390_RELATIVE: howto manager. (line 2197) 12230* BFD_RELOC_390_TLS_DTPMOD: howto manager. (line 2286) 12231* BFD_RELOC_390_TLS_DTPOFF: howto manager. (line 2287) 12232* BFD_RELOC_390_TLS_GD32: howto manager. (line 2272) 12233* BFD_RELOC_390_TLS_GD64: howto manager. (line 2273) 12234* BFD_RELOC_390_TLS_GDCALL: howto manager. (line 2270) 12235* BFD_RELOC_390_TLS_GOTIE12: howto manager. (line 2274) 12236* BFD_RELOC_390_TLS_GOTIE20: howto manager. (line 2294) 12237* BFD_RELOC_390_TLS_GOTIE32: howto manager. (line 2275) 12238* BFD_RELOC_390_TLS_GOTIE64: howto manager. (line 2276) 12239* BFD_RELOC_390_TLS_IE32: howto manager. (line 2279) 12240* BFD_RELOC_390_TLS_IE64: howto manager. (line 2280) 12241* BFD_RELOC_390_TLS_IEENT: howto manager. (line 2281) 12242* BFD_RELOC_390_TLS_LDCALL: howto manager. (line 2271) 12243* BFD_RELOC_390_TLS_LDM32: howto manager. (line 2277) 12244* BFD_RELOC_390_TLS_LDM64: howto manager. (line 2278) 12245* BFD_RELOC_390_TLS_LDO32: howto manager. (line 2284) 12246* BFD_RELOC_390_TLS_LDO64: howto manager. (line 2285) 12247* BFD_RELOC_390_TLS_LE32: howto manager. (line 2282) 12248* BFD_RELOC_390_TLS_LE64: howto manager. (line 2283) 12249* BFD_RELOC_390_TLS_LOAD: howto manager. (line 2269) 12250* BFD_RELOC_390_TLS_TPOFF: howto manager. (line 2288) 12251* BFD_RELOC_64: howto manager. (line 26) 12252* BFD_RELOC_64_PCREL: howto manager. (line 35) 12253* BFD_RELOC_64_PLT_PCREL: howto manager. (line 60) 12254* BFD_RELOC_64_PLTOFF: howto manager. (line 65) 12255* BFD_RELOC_68K_GLOB_DAT: howto manager. (line 78) 12256* BFD_RELOC_68K_JMP_SLOT: howto manager. (line 79) 12257* BFD_RELOC_68K_RELATIVE: howto manager. (line 80) 12258* BFD_RELOC_68K_TLS_GD16: howto manager. (line 82) 12259* BFD_RELOC_68K_TLS_GD32: howto manager. (line 81) 12260* BFD_RELOC_68K_TLS_GD8: howto manager. (line 83) 12261* BFD_RELOC_68K_TLS_IE16: howto manager. (line 91) 12262* BFD_RELOC_68K_TLS_IE32: howto manager. (line 90) 12263* BFD_RELOC_68K_TLS_IE8: howto manager. (line 92) 12264* BFD_RELOC_68K_TLS_LDM16: howto manager. (line 85) 12265* BFD_RELOC_68K_TLS_LDM32: howto manager. (line 84) 12266* BFD_RELOC_68K_TLS_LDM8: howto manager. (line 86) 12267* BFD_RELOC_68K_TLS_LDO16: howto manager. (line 88) 12268* BFD_RELOC_68K_TLS_LDO32: howto manager. (line 87) 12269* BFD_RELOC_68K_TLS_LDO8: howto manager. (line 89) 12270* BFD_RELOC_68K_TLS_LE16: howto manager. (line 94) 12271* BFD_RELOC_68K_TLS_LE32: howto manager. (line 93) 12272* BFD_RELOC_68K_TLS_LE8: howto manager. (line 95) 12273* BFD_RELOC_8: howto manager. (line 32) 12274* BFD_RELOC_860_COPY: howto manager. (line 2724) 12275* BFD_RELOC_860_GLOB_DAT: howto manager. (line 2725) 12276* BFD_RELOC_860_HAGOT: howto manager. (line 2750) 12277* BFD_RELOC_860_HAGOTOFF: howto manager. (line 2751) 12278* BFD_RELOC_860_HAPC: howto manager. (line 2752) 12279* BFD_RELOC_860_HIGH: howto manager. (line 2753) 12280* BFD_RELOC_860_HIGHADJ: howto manager. (line 2749) 12281* BFD_RELOC_860_HIGOT: howto manager. (line 2754) 12282* BFD_RELOC_860_HIGOTOFF: howto manager. (line 2755) 12283* BFD_RELOC_860_JUMP_SLOT: howto manager. (line 2726) 12284* BFD_RELOC_860_LOGOT0: howto manager. (line 2738) 12285* BFD_RELOC_860_LOGOT1: howto manager. (line 2740) 12286* BFD_RELOC_860_LOGOTOFF0: howto manager. (line 2742) 12287* BFD_RELOC_860_LOGOTOFF1: howto manager. (line 2744) 12288* BFD_RELOC_860_LOGOTOFF2: howto manager. (line 2746) 12289* BFD_RELOC_860_LOGOTOFF3: howto manager. (line 2747) 12290* BFD_RELOC_860_LOPC: howto manager. (line 2748) 12291* BFD_RELOC_860_LOW0: howto manager. (line 2731) 12292* BFD_RELOC_860_LOW1: howto manager. (line 2733) 12293* BFD_RELOC_860_LOW2: howto manager. (line 2735) 12294* BFD_RELOC_860_LOW3: howto manager. (line 2737) 12295* BFD_RELOC_860_PC16: howto manager. (line 2730) 12296* BFD_RELOC_860_PC26: howto manager. (line 2728) 12297* BFD_RELOC_860_PLT26: howto manager. (line 2729) 12298* BFD_RELOC_860_RELATIVE: howto manager. (line 2727) 12299* BFD_RELOC_860_SPGOT0: howto manager. (line 2739) 12300* BFD_RELOC_860_SPGOT1: howto manager. (line 2741) 12301* BFD_RELOC_860_SPGOTOFF0: howto manager. (line 2743) 12302* BFD_RELOC_860_SPGOTOFF1: howto manager. (line 2745) 12303* BFD_RELOC_860_SPLIT0: howto manager. (line 2732) 12304* BFD_RELOC_860_SPLIT1: howto manager. (line 2734) 12305* BFD_RELOC_860_SPLIT2: howto manager. (line 2736) 12306* BFD_RELOC_8_BASEREL: howto manager. (line 103) 12307* BFD_RELOC_8_FFnn: howto manager. (line 107) 12308* BFD_RELOC_8_GOT_PCREL: howto manager. (line 53) 12309* BFD_RELOC_8_GOTOFF: howto manager. (line 59) 12310* BFD_RELOC_8_PCREL: howto manager. (line 40) 12311* BFD_RELOC_8_PLT_PCREL: howto manager. (line 64) 12312* BFD_RELOC_8_PLTOFF: howto manager. (line 71) 12313* BFD_RELOC_AARCH64_16: howto manager. (line 3170) 12314* BFD_RELOC_AARCH64_16_PCREL: howto manager. (line 3177) 12315* BFD_RELOC_AARCH64_32: howto manager. (line 3169) 12316* BFD_RELOC_AARCH64_32_PCREL: howto manager. (line 3176) 12317* BFD_RELOC_AARCH64_64: howto manager. (line 3168) 12318* BFD_RELOC_AARCH64_64_PCREL: howto manager. (line 3175) 12319* BFD_RELOC_AARCH64_ADD_LO12: howto manager. (line 3242) 12320* BFD_RELOC_AARCH64_ADR_GOT_PAGE: howto manager. (line 3299) 12321* BFD_RELOC_AARCH64_ADR_HI21_NC_PCREL: howto manager. (line 3237) 12322* BFD_RELOC_AARCH64_ADR_HI21_PCREL: howto manager. (line 3233) 12323* BFD_RELOC_AARCH64_ADR_LO21_PCREL: howto manager. (line 3229) 12324* BFD_RELOC_AARCH64_BRANCH19: howto manager. (line 3257) 12325* BFD_RELOC_AARCH64_CALL26: howto manager. (line 3267) 12326* BFD_RELOC_AARCH64_COPY: howto manager. (line 3499) 12327* BFD_RELOC_AARCH64_GAS_INTERNAL_FIXUP: howto manager. (line 3533) 12328* BFD_RELOC_AARCH64_GLOB_DAT: howto manager. (line 3502) 12329* BFD_RELOC_AARCH64_GOT_LD_PREL19: howto manager. (line 3292) 12330* BFD_RELOC_AARCH64_IRELATIVE: howto manager. (line 3523) 12331* BFD_RELOC_AARCH64_JUMP26: howto manager. (line 3262) 12332* BFD_RELOC_AARCH64_JUMP_SLOT: howto manager. (line 3505) 12333* BFD_RELOC_AARCH64_LD32_GOT_LO12_NC: howto manager. (line 3309) 12334* BFD_RELOC_AARCH64_LD32_GOTPAGE_LO14: howto manager. (line 3326) 12335* BFD_RELOC_AARCH64_LD64_GOT_LO12_NC: howto manager. (line 3304) 12336* BFD_RELOC_AARCH64_LD64_GOTOFF_LO15: howto manager. (line 3322) 12337* BFD_RELOC_AARCH64_LD64_GOTPAGE_LO15: howto manager. (line 3330) 12338* BFD_RELOC_AARCH64_LD_GOT_LO12_NC: howto manager. (line 3551) 12339* BFD_RELOC_AARCH64_LD_LO19_PCREL: howto manager. (line 3224) 12340* BFD_RELOC_AARCH64_LDST128_LO12: howto manager. (line 3287) 12341* BFD_RELOC_AARCH64_LDST16_LO12: howto manager. (line 3272) 12342* BFD_RELOC_AARCH64_LDST32_LO12: howto manager. (line 3277) 12343* BFD_RELOC_AARCH64_LDST64_LO12: howto manager. (line 3282) 12344* BFD_RELOC_AARCH64_LDST8_LO12: howto manager. (line 3247) 12345* BFD_RELOC_AARCH64_LDST_LO12: howto manager. (line 3537) 12346* BFD_RELOC_AARCH64_MOVW_G0: howto manager. (line 3181) 12347* BFD_RELOC_AARCH64_MOVW_G0_NC: howto manager. (line 3185) 12348* BFD_RELOC_AARCH64_MOVW_G0_S: howto manager. (line 3209) 12349* BFD_RELOC_AARCH64_MOVW_G1: howto manager. (line 3189) 12350* BFD_RELOC_AARCH64_MOVW_G1_NC: howto manager. (line 3193) 12351* BFD_RELOC_AARCH64_MOVW_G1_S: howto manager. (line 3214) 12352* BFD_RELOC_AARCH64_MOVW_G2: howto manager. (line 3197) 12353* BFD_RELOC_AARCH64_MOVW_G2_NC: howto manager. (line 3201) 12354* BFD_RELOC_AARCH64_MOVW_G2_S: howto manager. (line 3219) 12355* BFD_RELOC_AARCH64_MOVW_G3: howto manager. (line 3205) 12356* BFD_RELOC_AARCH64_MOVW_GOTOFF_G0_NC: howto manager. (line 3314) 12357* BFD_RELOC_AARCH64_MOVW_GOTOFF_G1: howto manager. (line 3318) 12358* BFD_RELOC_AARCH64_NONE: howto manager. (line 3165) 12359* BFD_RELOC_AARCH64_NULL: howto manager. (line 3162) 12360* BFD_RELOC_AARCH64_RELATIVE: howto manager. (line 3508) 12361* BFD_RELOC_AARCH64_RELOC_END: howto manager. (line 3526) 12362* BFD_RELOC_AARCH64_RELOC_START: howto manager. (line 3156) 12363* BFD_RELOC_AARCH64_TLS_DTPMOD: howto manager. (line 3511) 12364* BFD_RELOC_AARCH64_TLS_DTPREL: howto manager. (line 3514) 12365* BFD_RELOC_AARCH64_TLS_TPREL: howto manager. (line 3517) 12366* BFD_RELOC_AARCH64_TLSDESC: howto manager. (line 3520) 12367* BFD_RELOC_AARCH64_TLSDESC_ADD: howto manager. (line 3493) 12368* BFD_RELOC_AARCH64_TLSDESC_ADD_LO12_NC: howto manager. (line 3481) 12369* BFD_RELOC_AARCH64_TLSDESC_ADR_PAGE21: howto manager. (line 3472) 12370* BFD_RELOC_AARCH64_TLSDESC_ADR_PREL21: howto manager. (line 3469) 12371* BFD_RELOC_AARCH64_TLSDESC_CALL: howto manager. (line 3496) 12372* BFD_RELOC_AARCH64_TLSDESC_LD32_LO12_NC: howto manager. (line 3478) 12373* BFD_RELOC_AARCH64_TLSDESC_LD64_LO12_NC: howto manager. (line 3475) 12374* BFD_RELOC_AARCH64_TLSDESC_LD_LO12_NC: howto manager. (line 3559) 12375* BFD_RELOC_AARCH64_TLSDESC_LD_PREL19: howto manager. (line 3466) 12376* BFD_RELOC_AARCH64_TLSDESC_LDR: howto manager. (line 3490) 12377* BFD_RELOC_AARCH64_TLSDESC_OFF_G0_NC: howto manager. (line 3487) 12378* BFD_RELOC_AARCH64_TLSDESC_OFF_G1: howto manager. (line 3484) 12379* BFD_RELOC_AARCH64_TLSGD_ADD_LO12_NC: howto manager. (line 3343) 12380* BFD_RELOC_AARCH64_TLSGD_ADR_PAGE21: howto manager. (line 3334) 12381* BFD_RELOC_AARCH64_TLSGD_ADR_PREL21: howto manager. (line 3340) 12382* BFD_RELOC_AARCH64_TLSGD_MOVW_G0_NC: howto manager. (line 3348) 12383* BFD_RELOC_AARCH64_TLSGD_MOVW_G1: howto manager. (line 3351) 12384* BFD_RELOC_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21: howto manager. 12385 (line 3354) 12386* BFD_RELOC_AARCH64_TLSIE_LD32_GOTTPREL_LO12_NC: howto manager. 12387 (line 3360) 12388* BFD_RELOC_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC: howto manager. 12389 (line 3357) 12390* BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_LO12_NC: howto manager. 12391 (line 3555) 12392* BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_PREL19: howto manager. (line 3363) 12393* BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC: howto manager. 12394 (line 3366) 12395* BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G1: howto manager. (line 3369) 12396* BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_HI12: howto manager. (line 3372) 12397* BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12: howto manager. (line 3375) 12398* BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12_NC: howto manager. (line 3378) 12399* BFD_RELOC_AARCH64_TLSLD_ADD_LO12_NC: howto manager. (line 3382) 12400* BFD_RELOC_AARCH64_TLSLD_ADR_PAGE21: howto manager. (line 3387) 12401* BFD_RELOC_AARCH64_TLSLD_ADR_PREL21: howto manager. (line 3391) 12402* BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12: howto manager. (line 3395) 12403* BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC: howto manager. 12404 (line 3399) 12405* BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12: howto manager. (line 3403) 12406* BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC: howto manager. 12407 (line 3407) 12408* BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12: howto manager. (line 3411) 12409* BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC: howto manager. 12410 (line 3415) 12411* BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12: howto manager. (line 3419) 12412* BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC: howto manager. 12413 (line 3423) 12414* BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12: howto manager. (line 3542) 12415* BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12_NC: howto manager. 12416 (line 3547) 12417* BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0: howto manager. (line 3427) 12418* BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0_NC: howto manager. (line 3430) 12419* BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1: howto manager. (line 3433) 12420* BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1_NC: howto manager. (line 3436) 12421* BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G2: howto manager. (line 3439) 12422* BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_HI12: howto manager. (line 3457) 12423* BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12: howto manager. (line 3460) 12424* BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12_NC: howto manager. (line 3463) 12425* BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0: howto manager. (line 3451) 12426* BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0_NC: howto manager. (line 3454) 12427* BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1: howto manager. (line 3445) 12428* BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1_NC: howto manager. (line 3448) 12429* BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G2: howto manager. (line 3442) 12430* BFD_RELOC_AARCH64_TSTBR14: howto manager. (line 3252) 12431* BFD_RELOC_AC_SECTOFF_S9: howto manager. (line 1110) 12432* BFD_RELOC_AC_SECTOFF_S9_1: howto manager. (line 1111) 12433* BFD_RELOC_AC_SECTOFF_S9_2: howto manager. (line 1112) 12434* BFD_RELOC_AC_SECTOFF_U8: howto manager. (line 1107) 12435* BFD_RELOC_AC_SECTOFF_U8_1: howto manager. (line 1108) 12436* BFD_RELOC_AC_SECTOFF_U8_2: howto manager. (line 1109) 12437* BFD_RELOC_ALPHA_BOH: howto manager. (line 323) 12438* BFD_RELOC_ALPHA_BRSGP: howto manager. (line 306) 12439* BFD_RELOC_ALPHA_BSR: howto manager. (line 315) 12440* BFD_RELOC_ALPHA_CODEADDR: howto manager. (line 297) 12441* BFD_RELOC_ALPHA_DTPMOD64: howto manager. (line 329) 12442* BFD_RELOC_ALPHA_DTPREL16: howto manager. (line 334) 12443* BFD_RELOC_ALPHA_DTPREL64: howto manager. (line 331) 12444* BFD_RELOC_ALPHA_DTPREL_HI16: howto manager. (line 332) 12445* BFD_RELOC_ALPHA_DTPREL_LO16: howto manager. (line 333) 12446* BFD_RELOC_ALPHA_ELF_LITERAL: howto manager. (line 262) 12447* BFD_RELOC_ALPHA_GOTDTPREL16: howto manager. (line 330) 12448* BFD_RELOC_ALPHA_GOTTPREL16: howto manager. (line 335) 12449* BFD_RELOC_ALPHA_GPDISP: howto manager. (line 256) 12450* BFD_RELOC_ALPHA_GPDISP_HI16: howto manager. (line 242) 12451* BFD_RELOC_ALPHA_GPDISP_LO16: howto manager. (line 250) 12452* BFD_RELOC_ALPHA_GPREL_HI16: howto manager. (line 301) 12453* BFD_RELOC_ALPHA_GPREL_LO16: howto manager. (line 302) 12454* BFD_RELOC_ALPHA_HINT: howto manager. (line 288) 12455* BFD_RELOC_ALPHA_LDA: howto manager. (line 319) 12456* BFD_RELOC_ALPHA_LINKAGE: howto manager. (line 293) 12457* BFD_RELOC_ALPHA_LITERAL: howto manager. (line 261) 12458* BFD_RELOC_ALPHA_LITUSE: howto manager. (line 263) 12459* BFD_RELOC_ALPHA_NOP: howto manager. (line 311) 12460* BFD_RELOC_ALPHA_TLSGD: howto manager. (line 327) 12461* BFD_RELOC_ALPHA_TLSLDM: howto manager. (line 328) 12462* BFD_RELOC_ALPHA_TPREL16: howto manager. (line 339) 12463* BFD_RELOC_ALPHA_TPREL64: howto manager. (line 336) 12464* BFD_RELOC_ALPHA_TPREL_HI16: howto manager. (line 337) 12465* BFD_RELOC_ALPHA_TPREL_LO16: howto manager. (line 338) 12466* BFD_RELOC_ARC_16: howto manager. (line 1079) 12467* BFD_RELOC_ARC_24: howto manager. (line 1080) 12468* BFD_RELOC_ARC_32: howto manager. (line 1081) 12469* BFD_RELOC_ARC_32_ME: howto manager. (line 1101) 12470* BFD_RELOC_ARC_32_ME_S: howto manager. (line 1102) 12471* BFD_RELOC_ARC_32_PCREL: howto manager. (line 1119) 12472* BFD_RELOC_ARC_8: howto manager. (line 1078) 12473* BFD_RELOC_ARC_COPY: howto manager. (line 1124) 12474* BFD_RELOC_ARC_GLOB_DAT: howto manager. (line 1125) 12475* BFD_RELOC_ARC_GOT32: howto manager. (line 1121) 12476* BFD_RELOC_ARC_GOTOFF: howto manager. (line 1128) 12477* BFD_RELOC_ARC_GOTPC: howto manager. (line 1129) 12478* BFD_RELOC_ARC_GOTPC32: howto manager. (line 1122) 12479* BFD_RELOC_ARC_JMP_SLOT: howto manager. (line 1126) 12480* BFD_RELOC_ARC_N16: howto manager. (line 1083) 12481* BFD_RELOC_ARC_N24: howto manager. (line 1084) 12482* BFD_RELOC_ARC_N32: howto manager. (line 1085) 12483* BFD_RELOC_ARC_N32_ME: howto manager. (line 1103) 12484* BFD_RELOC_ARC_N8: howto manager. (line 1082) 12485* BFD_RELOC_ARC_NONE: howto manager. (line 1077) 12486* BFD_RELOC_ARC_NPS_CMEM16: howto manager. (line 1144) 12487* BFD_RELOC_ARC_PC32: howto manager. (line 1120) 12488* BFD_RELOC_ARC_PLT32: howto manager. (line 1123) 12489* BFD_RELOC_ARC_RELATIVE: howto manager. (line 1127) 12490* BFD_RELOC_ARC_S13_PCREL: howto manager. (line 1099) 12491* BFD_RELOC_ARC_S21H_PCREL: howto manager. (line 1088) 12492* BFD_RELOC_ARC_S21H_PCREL_PLT: howto manager. (line 1143) 12493* BFD_RELOC_ARC_S21W_PCREL: howto manager. (line 1089) 12494* BFD_RELOC_ARC_S21W_PCREL_PLT: howto manager. (line 1130) 12495* BFD_RELOC_ARC_S25H_PCREL: howto manager. (line 1090) 12496* BFD_RELOC_ARC_S25H_PCREL_PLT: howto manager. (line 1131) 12497* BFD_RELOC_ARC_S25W_PCREL: howto manager. (line 1091) 12498* BFD_RELOC_ARC_S25W_PCREL_PLT: howto manager. (line 1142) 12499* BFD_RELOC_ARC_SDA: howto manager. (line 1086) 12500* BFD_RELOC_ARC_SDA16_LD: howto manager. (line 1096) 12501* BFD_RELOC_ARC_SDA16_LD1: howto manager. (line 1097) 12502* BFD_RELOC_ARC_SDA16_LD2: howto manager. (line 1098) 12503* BFD_RELOC_ARC_SDA16_ST2: howto manager. (line 1118) 12504* BFD_RELOC_ARC_SDA32: howto manager. (line 1092) 12505* BFD_RELOC_ARC_SDA32_ME: howto manager. (line 1105) 12506* BFD_RELOC_ARC_SDA_12: howto manager. (line 1117) 12507* BFD_RELOC_ARC_SDA_LDST: howto manager. (line 1093) 12508* BFD_RELOC_ARC_SDA_LDST1: howto manager. (line 1094) 12509* BFD_RELOC_ARC_SDA_LDST2: howto manager. (line 1095) 12510* BFD_RELOC_ARC_SECTOFF: howto manager. (line 1087) 12511* BFD_RELOC_ARC_SECTOFF_1: howto manager. (line 1115) 12512* BFD_RELOC_ARC_SECTOFF_2: howto manager. (line 1116) 12513* BFD_RELOC_ARC_SECTOFF_ME: howto manager. (line 1104) 12514* BFD_RELOC_ARC_SECTOFF_ME_1: howto manager. (line 1113) 12515* BFD_RELOC_ARC_SECTOFF_ME_2: howto manager. (line 1114) 12516* BFD_RELOC_ARC_TLS_DTPMOD: howto manager. (line 1132) 12517* BFD_RELOC_ARC_TLS_DTPOFF: howto manager. (line 1138) 12518* BFD_RELOC_ARC_TLS_DTPOFF_S9: howto manager. (line 1139) 12519* BFD_RELOC_ARC_TLS_GD_CALL: howto manager. (line 1136) 12520* BFD_RELOC_ARC_TLS_GD_GOT: howto manager. (line 1134) 12521* BFD_RELOC_ARC_TLS_GD_LD: howto manager. (line 1135) 12522* BFD_RELOC_ARC_TLS_IE_GOT: howto manager. (line 1137) 12523* BFD_RELOC_ARC_TLS_LE_32: howto manager. (line 1141) 12524* BFD_RELOC_ARC_TLS_LE_S9: howto manager. (line 1140) 12525* BFD_RELOC_ARC_TLS_TPOFF: howto manager. (line 1133) 12526* BFD_RELOC_ARC_W: howto manager. (line 1100) 12527* BFD_RELOC_ARC_W_ME: howto manager. (line 1106) 12528* BFD_RELOC_ARM_ADR_IMM: howto manager. (line 963) 12529* BFD_RELOC_ARM_ADRL_IMMEDIATE: howto manager. (line 949) 12530* BFD_RELOC_ARM_ALU_PC_G0: howto manager. (line 907) 12531* BFD_RELOC_ARM_ALU_PC_G0_NC: howto manager. (line 906) 12532* BFD_RELOC_ARM_ALU_PC_G1: howto manager. (line 909) 12533* BFD_RELOC_ARM_ALU_PC_G1_NC: howto manager. (line 908) 12534* BFD_RELOC_ARM_ALU_PC_G2: howto manager. (line 910) 12535* BFD_RELOC_ARM_ALU_SB_G0: howto manager. (line 921) 12536* BFD_RELOC_ARM_ALU_SB_G0_NC: howto manager. (line 920) 12537* BFD_RELOC_ARM_ALU_SB_G1: howto manager. (line 923) 12538* BFD_RELOC_ARM_ALU_SB_G1_NC: howto manager. (line 922) 12539* BFD_RELOC_ARM_ALU_SB_G2: howto manager. (line 924) 12540* BFD_RELOC_ARM_CP_OFF_IMM: howto manager. (line 959) 12541* BFD_RELOC_ARM_CP_OFF_IMM_S2: howto manager. (line 960) 12542* BFD_RELOC_ARM_GLOB_DAT: howto manager. (line 881) 12543* BFD_RELOC_ARM_GOT32: howto manager. (line 882) 12544* BFD_RELOC_ARM_GOT_PREL: howto manager. (line 887) 12545* BFD_RELOC_ARM_GOTOFF: howto manager. (line 885) 12546* BFD_RELOC_ARM_GOTPC: howto manager. (line 886) 12547* BFD_RELOC_ARM_HVC: howto manager. (line 956) 12548* BFD_RELOC_ARM_HWLITERAL: howto manager. (line 970) 12549* BFD_RELOC_ARM_IMMEDIATE: howto manager. (line 948) 12550* BFD_RELOC_ARM_IN_POOL: howto manager. (line 966) 12551* BFD_RELOC_ARM_IRELATIVE: howto manager. (line 939) 12552* BFD_RELOC_ARM_JUMP_SLOT: howto manager. (line 880) 12553* BFD_RELOC_ARM_LDC_PC_G0: howto manager. (line 917) 12554* BFD_RELOC_ARM_LDC_PC_G1: howto manager. (line 918) 12555* BFD_RELOC_ARM_LDC_PC_G2: howto manager. (line 919) 12556* BFD_RELOC_ARM_LDC_SB_G0: howto manager. (line 931) 12557* BFD_RELOC_ARM_LDC_SB_G1: howto manager. (line 932) 12558* BFD_RELOC_ARM_LDC_SB_G2: howto manager. (line 933) 12559* BFD_RELOC_ARM_LDR_IMM: howto manager. (line 964) 12560* BFD_RELOC_ARM_LDR_PC_G0: howto manager. (line 911) 12561* BFD_RELOC_ARM_LDR_PC_G1: howto manager. (line 912) 12562* BFD_RELOC_ARM_LDR_PC_G2: howto manager. (line 913) 12563* BFD_RELOC_ARM_LDR_SB_G0: howto manager. (line 925) 12564* BFD_RELOC_ARM_LDR_SB_G1: howto manager. (line 926) 12565* BFD_RELOC_ARM_LDR_SB_G2: howto manager. (line 927) 12566* BFD_RELOC_ARM_LDRS_PC_G0: howto manager. (line 914) 12567* BFD_RELOC_ARM_LDRS_PC_G1: howto manager. (line 915) 12568* BFD_RELOC_ARM_LDRS_PC_G2: howto manager. (line 916) 12569* BFD_RELOC_ARM_LDRS_SB_G0: howto manager. (line 928) 12570* BFD_RELOC_ARM_LDRS_SB_G1: howto manager. (line 929) 12571* BFD_RELOC_ARM_LDRS_SB_G2: howto manager. (line 930) 12572* BFD_RELOC_ARM_LITERAL: howto manager. (line 965) 12573* BFD_RELOC_ARM_MOVT: howto manager. (line 871) 12574* BFD_RELOC_ARM_MOVT_PCREL: howto manager. (line 873) 12575* BFD_RELOC_ARM_MOVW: howto manager. (line 870) 12576* BFD_RELOC_ARM_MOVW_PCREL: howto manager. (line 872) 12577* BFD_RELOC_ARM_MULTI: howto manager. (line 958) 12578* BFD_RELOC_ARM_OFFSET_IMM: howto manager. (line 844) 12579* BFD_RELOC_ARM_OFFSET_IMM8: howto manager. (line 967) 12580* BFD_RELOC_ARM_PCREL_BLX: howto manager. (line 815) 12581* BFD_RELOC_ARM_PCREL_BRANCH: howto manager. (line 811) 12582* BFD_RELOC_ARM_PCREL_CALL: howto manager. (line 825) 12583* BFD_RELOC_ARM_PCREL_JUMP: howto manager. (line 829) 12584* BFD_RELOC_ARM_PLT32: howto manager. (line 883) 12585* BFD_RELOC_ARM_PREL31: howto manager. (line 867) 12586* BFD_RELOC_ARM_RELATIVE: howto manager. (line 884) 12587* BFD_RELOC_ARM_ROSEGREL32: howto manager. (line 856) 12588* BFD_RELOC_ARM_SBREL32: howto manager. (line 859) 12589* BFD_RELOC_ARM_SHIFT_IMM: howto manager. (line 954) 12590* BFD_RELOC_ARM_SMC: howto manager. (line 955) 12591* BFD_RELOC_ARM_SWI: howto manager. (line 957) 12592* BFD_RELOC_ARM_T32_ADD_IMM: howto manager. (line 951) 12593* BFD_RELOC_ARM_T32_ADD_PC12: howto manager. (line 953) 12594* BFD_RELOC_ARM_T32_CP_OFF_IMM: howto manager. (line 961) 12595* BFD_RELOC_ARM_T32_CP_OFF_IMM_S2: howto manager. (line 962) 12596* BFD_RELOC_ARM_T32_IMM12: howto manager. (line 952) 12597* BFD_RELOC_ARM_T32_IMMEDIATE: howto manager. (line 950) 12598* BFD_RELOC_ARM_T32_OFFSET_IMM: howto manager. (line 969) 12599* BFD_RELOC_ARM_T32_OFFSET_U8: howto manager. (line 968) 12600* BFD_RELOC_ARM_TARGET1: howto manager. (line 852) 12601* BFD_RELOC_ARM_TARGET2: howto manager. (line 862) 12602* BFD_RELOC_ARM_THM_TLS_CALL: howto manager. (line 900) 12603* BFD_RELOC_ARM_THM_TLS_DESCSEQ: howto manager. (line 902) 12604* BFD_RELOC_ARM_THUMB_ADD: howto manager. (line 971) 12605* BFD_RELOC_ARM_THUMB_ALU_ABS_G0_NC: howto manager. (line 942) 12606* BFD_RELOC_ARM_THUMB_ALU_ABS_G1_NC: howto manager. (line 943) 12607* BFD_RELOC_ARM_THUMB_ALU_ABS_G2_NC: howto manager. (line 944) 12608* BFD_RELOC_ARM_THUMB_ALU_ABS_G3_NC: howto manager. (line 945) 12609* BFD_RELOC_ARM_THUMB_IMM: howto manager. (line 972) 12610* BFD_RELOC_ARM_THUMB_MOVT: howto manager. (line 875) 12611* BFD_RELOC_ARM_THUMB_MOVT_PCREL: howto manager. (line 877) 12612* BFD_RELOC_ARM_THUMB_MOVW: howto manager. (line 874) 12613* BFD_RELOC_ARM_THUMB_MOVW_PCREL: howto manager. (line 876) 12614* BFD_RELOC_ARM_THUMB_OFFSET: howto manager. (line 848) 12615* BFD_RELOC_ARM_THUMB_SHIFT: howto manager. (line 973) 12616* BFD_RELOC_ARM_TLS_CALL: howto manager. (line 899) 12617* BFD_RELOC_ARM_TLS_DESC: howto manager. (line 903) 12618* BFD_RELOC_ARM_TLS_DESCSEQ: howto manager. (line 901) 12619* BFD_RELOC_ARM_TLS_DTPMOD32: howto manager. (line 894) 12620* BFD_RELOC_ARM_TLS_DTPOFF32: howto manager. (line 893) 12621* BFD_RELOC_ARM_TLS_GD32: howto manager. (line 890) 12622* BFD_RELOC_ARM_TLS_GOTDESC: howto manager. (line 898) 12623* BFD_RELOC_ARM_TLS_IE32: howto manager. (line 896) 12624* BFD_RELOC_ARM_TLS_LDM32: howto manager. (line 892) 12625* BFD_RELOC_ARM_TLS_LDO32: howto manager. (line 891) 12626* BFD_RELOC_ARM_TLS_LE32: howto manager. (line 897) 12627* BFD_RELOC_ARM_TLS_TPOFF32: howto manager. (line 895) 12628* BFD_RELOC_ARM_V4BX: howto manager. (line 936) 12629* BFD_RELOC_AVR_13_PCREL: howto manager. (line 1932) 12630* BFD_RELOC_AVR_16_PM: howto manager. (line 1936) 12631* BFD_RELOC_AVR_6: howto manager. (line 2023) 12632* BFD_RELOC_AVR_6_ADIW: howto manager. (line 2027) 12633* BFD_RELOC_AVR_7_PCREL: howto manager. (line 1928) 12634* BFD_RELOC_AVR_8_HI: howto manager. (line 2035) 12635* BFD_RELOC_AVR_8_HLO: howto manager. (line 2039) 12636* BFD_RELOC_AVR_8_LO: howto manager. (line 2031) 12637* BFD_RELOC_AVR_CALL: howto manager. (line 2015) 12638* BFD_RELOC_AVR_DIFF16: howto manager. (line 2044) 12639* BFD_RELOC_AVR_DIFF32: howto manager. (line 2045) 12640* BFD_RELOC_AVR_DIFF8: howto manager. (line 2043) 12641* BFD_RELOC_AVR_HH8_LDI: howto manager. (line 1948) 12642* BFD_RELOC_AVR_HH8_LDI_NEG: howto manager. (line 1967) 12643* BFD_RELOC_AVR_HH8_LDI_PM: howto manager. (line 1996) 12644* BFD_RELOC_AVR_HH8_LDI_PM_NEG: howto manager. (line 2010) 12645* BFD_RELOC_AVR_HI8_LDI: howto manager. (line 1944) 12646* BFD_RELOC_AVR_HI8_LDI_GS: howto manager. (line 1990) 12647* BFD_RELOC_AVR_HI8_LDI_NEG: howto manager. (line 1962) 12648* BFD_RELOC_AVR_HI8_LDI_PM: howto manager. (line 1986) 12649* BFD_RELOC_AVR_HI8_LDI_PM_NEG: howto manager. (line 2005) 12650* BFD_RELOC_AVR_LDI: howto manager. (line 2019) 12651* BFD_RELOC_AVR_LDS_STS_16: howto manager. (line 2053) 12652* BFD_RELOC_AVR_LO8_LDI: howto manager. (line 1940) 12653* BFD_RELOC_AVR_LO8_LDI_GS: howto manager. (line 1980) 12654* BFD_RELOC_AVR_LO8_LDI_NEG: howto manager. (line 1957) 12655* BFD_RELOC_AVR_LO8_LDI_PM: howto manager. (line 1976) 12656* BFD_RELOC_AVR_LO8_LDI_PM_NEG: howto manager. (line 2001) 12657* BFD_RELOC_AVR_MS8_LDI: howto manager. (line 1953) 12658* BFD_RELOC_AVR_MS8_LDI_NEG: howto manager. (line 1972) 12659* BFD_RELOC_AVR_PORT5: howto manager. (line 2061) 12660* BFD_RELOC_AVR_PORT6: howto manager. (line 2057) 12661* BFD_RELOC_BFIN_10_PCREL: howto manager. (line 1162) 12662* BFD_RELOC_BFIN_11_PCREL: howto manager. (line 1165) 12663* BFD_RELOC_BFIN_12_PCREL_JUMP: howto manager. (line 1168) 12664* BFD_RELOC_BFIN_12_PCREL_JUMP_S: howto manager. (line 1171) 12665* BFD_RELOC_BFIN_16_HIGH: howto manager. (line 1150) 12666* BFD_RELOC_BFIN_16_IMM: howto manager. (line 1147) 12667* BFD_RELOC_BFIN_16_LOW: howto manager. (line 1159) 12668* BFD_RELOC_BFIN_24_PCREL_CALL_X: howto manager. (line 1174) 12669* BFD_RELOC_BFIN_24_PCREL_JUMP_L: howto manager. (line 1177) 12670* BFD_RELOC_BFIN_4_PCREL: howto manager. (line 1153) 12671* BFD_RELOC_BFIN_5_PCREL: howto manager. (line 1156) 12672* BFD_RELOC_BFIN_FUNCDESC: howto manager. (line 1183) 12673* BFD_RELOC_BFIN_FUNCDESC_GOT17M4: howto manager. (line 1184) 12674* BFD_RELOC_BFIN_FUNCDESC_GOTHI: howto manager. (line 1185) 12675* BFD_RELOC_BFIN_FUNCDESC_GOTLO: howto manager. (line 1186) 12676* BFD_RELOC_BFIN_FUNCDESC_GOTOFF17M4: howto manager. (line 1188) 12677* BFD_RELOC_BFIN_FUNCDESC_GOTOFFHI: howto manager. (line 1189) 12678* BFD_RELOC_BFIN_FUNCDESC_GOTOFFLO: howto manager. (line 1190) 12679* BFD_RELOC_BFIN_FUNCDESC_VALUE: howto manager. (line 1187) 12680* BFD_RELOC_BFIN_GOT: howto manager. (line 1196) 12681* BFD_RELOC_BFIN_GOT17M4: howto manager. (line 1180) 12682* BFD_RELOC_BFIN_GOTHI: howto manager. (line 1181) 12683* BFD_RELOC_BFIN_GOTLO: howto manager. (line 1182) 12684* BFD_RELOC_BFIN_GOTOFF17M4: howto manager. (line 1191) 12685* BFD_RELOC_BFIN_GOTOFFHI: howto manager. (line 1192) 12686* BFD_RELOC_BFIN_GOTOFFLO: howto manager. (line 1193) 12687* BFD_RELOC_BFIN_PLTPC: howto manager. (line 1199) 12688* BFD_RELOC_C6000_ABS_H16: howto manager. (line 1751) 12689* BFD_RELOC_C6000_ABS_L16: howto manager. (line 1750) 12690* BFD_RELOC_C6000_ABS_S16: howto manager. (line 1749) 12691* BFD_RELOC_C6000_ALIGN: howto manager. (line 1772) 12692* BFD_RELOC_C6000_COPY: howto manager. (line 1767) 12693* BFD_RELOC_C6000_DSBT_INDEX: howto manager. (line 1765) 12694* BFD_RELOC_C6000_EHTYPE: howto manager. (line 1769) 12695* BFD_RELOC_C6000_FPHEAD: howto manager. (line 1773) 12696* BFD_RELOC_C6000_JUMP_SLOT: howto manager. (line 1768) 12697* BFD_RELOC_C6000_NOCMP: howto manager. (line 1774) 12698* BFD_RELOC_C6000_PCR_H16: howto manager. (line 1770) 12699* BFD_RELOC_C6000_PCR_L16: howto manager. (line 1771) 12700* BFD_RELOC_C6000_PCR_S10: howto manager. (line 1747) 12701* BFD_RELOC_C6000_PCR_S12: howto manager. (line 1746) 12702* BFD_RELOC_C6000_PCR_S21: howto manager. (line 1745) 12703* BFD_RELOC_C6000_PCR_S7: howto manager. (line 1748) 12704* BFD_RELOC_C6000_PREL31: howto manager. (line 1766) 12705* BFD_RELOC_C6000_SBR_GOT_H16_W: howto manager. (line 1764) 12706* BFD_RELOC_C6000_SBR_GOT_L16_W: howto manager. (line 1763) 12707* BFD_RELOC_C6000_SBR_GOT_U15_W: howto manager. (line 1762) 12708* BFD_RELOC_C6000_SBR_H16_B: howto manager. (line 1759) 12709* BFD_RELOC_C6000_SBR_H16_H: howto manager. (line 1760) 12710* BFD_RELOC_C6000_SBR_H16_W: howto manager. (line 1761) 12711* BFD_RELOC_C6000_SBR_L16_B: howto manager. (line 1756) 12712* BFD_RELOC_C6000_SBR_L16_H: howto manager. (line 1757) 12713* BFD_RELOC_C6000_SBR_L16_W: howto manager. (line 1758) 12714* BFD_RELOC_C6000_SBR_S16: howto manager. (line 1755) 12715* BFD_RELOC_C6000_SBR_U15_B: howto manager. (line 1752) 12716* BFD_RELOC_C6000_SBR_U15_H: howto manager. (line 1753) 12717* BFD_RELOC_C6000_SBR_U15_W: howto manager. (line 1754) 12718* bfd_reloc_code_type: howto manager. (line 10) 12719* BFD_RELOC_CR16_ABS20: howto manager. (line 2624) 12720* BFD_RELOC_CR16_ABS24: howto manager. (line 2625) 12721* BFD_RELOC_CR16_DISP16: howto manager. (line 2635) 12722* BFD_RELOC_CR16_DISP20: howto manager. (line 2636) 12723* BFD_RELOC_CR16_DISP24: howto manager. (line 2637) 12724* BFD_RELOC_CR16_DISP24a: howto manager. (line 2638) 12725* BFD_RELOC_CR16_DISP4: howto manager. (line 2633) 12726* BFD_RELOC_CR16_DISP8: howto manager. (line 2634) 12727* BFD_RELOC_CR16_GLOB_DAT: howto manager. (line 2644) 12728* BFD_RELOC_CR16_GOT_REGREL20: howto manager. (line 2642) 12729* BFD_RELOC_CR16_GOTC_REGREL20: howto manager. (line 2643) 12730* BFD_RELOC_CR16_IMM16: howto manager. (line 2628) 12731* BFD_RELOC_CR16_IMM20: howto manager. (line 2629) 12732* BFD_RELOC_CR16_IMM24: howto manager. (line 2630) 12733* BFD_RELOC_CR16_IMM32: howto manager. (line 2631) 12734* BFD_RELOC_CR16_IMM32a: howto manager. (line 2632) 12735* BFD_RELOC_CR16_IMM4: howto manager. (line 2626) 12736* BFD_RELOC_CR16_IMM8: howto manager. (line 2627) 12737* BFD_RELOC_CR16_NUM16: howto manager. (line 2613) 12738* BFD_RELOC_CR16_NUM32: howto manager. (line 2614) 12739* BFD_RELOC_CR16_NUM32a: howto manager. (line 2615) 12740* BFD_RELOC_CR16_NUM8: howto manager. (line 2612) 12741* BFD_RELOC_CR16_REGREL0: howto manager. (line 2616) 12742* BFD_RELOC_CR16_REGREL14: howto manager. (line 2619) 12743* BFD_RELOC_CR16_REGREL14a: howto manager. (line 2620) 12744* BFD_RELOC_CR16_REGREL16: howto manager. (line 2621) 12745* BFD_RELOC_CR16_REGREL20: howto manager. (line 2622) 12746* BFD_RELOC_CR16_REGREL20a: howto manager. (line 2623) 12747* BFD_RELOC_CR16_REGREL4: howto manager. (line 2617) 12748* BFD_RELOC_CR16_REGREL4a: howto manager. (line 2618) 12749* BFD_RELOC_CR16_SWITCH16: howto manager. (line 2640) 12750* BFD_RELOC_CR16_SWITCH32: howto manager. (line 2641) 12751* BFD_RELOC_CR16_SWITCH8: howto manager. (line 2639) 12752* BFD_RELOC_CRIS_16_DTPREL: howto manager. (line 2715) 12753* BFD_RELOC_CRIS_16_GOT: howto manager. (line 2691) 12754* BFD_RELOC_CRIS_16_GOT_GD: howto manager. (line 2711) 12755* BFD_RELOC_CRIS_16_GOT_TPREL: howto manager. (line 2717) 12756* BFD_RELOC_CRIS_16_GOTPLT: howto manager. (line 2697) 12757* BFD_RELOC_CRIS_16_TPREL: howto manager. (line 2719) 12758* BFD_RELOC_CRIS_32_DTPREL: howto manager. (line 2714) 12759* BFD_RELOC_CRIS_32_GD: howto manager. (line 2712) 12760* BFD_RELOC_CRIS_32_GOT: howto manager. (line 2688) 12761* BFD_RELOC_CRIS_32_GOT_GD: howto manager. (line 2710) 12762* BFD_RELOC_CRIS_32_GOT_TPREL: howto manager. (line 2716) 12763* BFD_RELOC_CRIS_32_GOTPLT: howto manager. (line 2694) 12764* BFD_RELOC_CRIS_32_GOTREL: howto manager. (line 2700) 12765* BFD_RELOC_CRIS_32_IE: howto manager. (line 2721) 12766* BFD_RELOC_CRIS_32_PLT_GOTREL: howto manager. (line 2703) 12767* BFD_RELOC_CRIS_32_PLT_PCREL: howto manager. (line 2706) 12768* BFD_RELOC_CRIS_32_TPREL: howto manager. (line 2718) 12769* BFD_RELOC_CRIS_BDISP8: howto manager. (line 2669) 12770* BFD_RELOC_CRIS_COPY: howto manager. (line 2682) 12771* BFD_RELOC_CRIS_DTP: howto manager. (line 2713) 12772* BFD_RELOC_CRIS_DTPMOD: howto manager. (line 2720) 12773* BFD_RELOC_CRIS_GLOB_DAT: howto manager. (line 2683) 12774* BFD_RELOC_CRIS_JUMP_SLOT: howto manager. (line 2684) 12775* BFD_RELOC_CRIS_LAPCQ_OFFSET: howto manager. (line 2677) 12776* BFD_RELOC_CRIS_RELATIVE: howto manager. (line 2685) 12777* BFD_RELOC_CRIS_SIGNED_16: howto manager. (line 2675) 12778* BFD_RELOC_CRIS_SIGNED_6: howto manager. (line 2671) 12779* BFD_RELOC_CRIS_SIGNED_8: howto manager. (line 2673) 12780* BFD_RELOC_CRIS_UNSIGNED_16: howto manager. (line 2676) 12781* BFD_RELOC_CRIS_UNSIGNED_4: howto manager. (line 2678) 12782* BFD_RELOC_CRIS_UNSIGNED_5: howto manager. (line 2670) 12783* BFD_RELOC_CRIS_UNSIGNED_6: howto manager. (line 2672) 12784* BFD_RELOC_CRIS_UNSIGNED_8: howto manager. (line 2674) 12785* BFD_RELOC_CRX_ABS16: howto manager. (line 2657) 12786* BFD_RELOC_CRX_ABS32: howto manager. (line 2658) 12787* BFD_RELOC_CRX_IMM16: howto manager. (line 2662) 12788* BFD_RELOC_CRX_IMM32: howto manager. (line 2663) 12789* BFD_RELOC_CRX_NUM16: howto manager. (line 2660) 12790* BFD_RELOC_CRX_NUM32: howto manager. (line 2661) 12791* BFD_RELOC_CRX_NUM8: howto manager. (line 2659) 12792* BFD_RELOC_CRX_REGREL12: howto manager. (line 2653) 12793* BFD_RELOC_CRX_REGREL22: howto manager. (line 2654) 12794* BFD_RELOC_CRX_REGREL28: howto manager. (line 2655) 12795* BFD_RELOC_CRX_REGREL32: howto manager. (line 2656) 12796* BFD_RELOC_CRX_REL16: howto manager. (line 2650) 12797* BFD_RELOC_CRX_REL24: howto manager. (line 2651) 12798* BFD_RELOC_CRX_REL32: howto manager. (line 2652) 12799* BFD_RELOC_CRX_REL4: howto manager. (line 2647) 12800* BFD_RELOC_CRX_REL8: howto manager. (line 2648) 12801* BFD_RELOC_CRX_REL8_CMP: howto manager. (line 2649) 12802* BFD_RELOC_CRX_SWITCH16: howto manager. (line 2665) 12803* BFD_RELOC_CRX_SWITCH32: howto manager. (line 2666) 12804* BFD_RELOC_CRX_SWITCH8: howto manager. (line 2664) 12805* BFD_RELOC_CTOR: howto manager. (line 805) 12806* BFD_RELOC_D10V_10_PCREL_L: howto manager. (line 1266) 12807* BFD_RELOC_D10V_10_PCREL_R: howto manager. (line 1262) 12808* BFD_RELOC_D10V_18: howto manager. (line 1271) 12809* BFD_RELOC_D10V_18_PCREL: howto manager. (line 1274) 12810* BFD_RELOC_D30V_15: howto manager. (line 1289) 12811* BFD_RELOC_D30V_15_PCREL: howto manager. (line 1293) 12812* BFD_RELOC_D30V_15_PCREL_R: howto manager. (line 1297) 12813* BFD_RELOC_D30V_21: howto manager. (line 1302) 12814* BFD_RELOC_D30V_21_PCREL: howto manager. (line 1306) 12815* BFD_RELOC_D30V_21_PCREL_R: howto manager. (line 1310) 12816* BFD_RELOC_D30V_32: howto manager. (line 1315) 12817* BFD_RELOC_D30V_32_PCREL: howto manager. (line 1318) 12818* BFD_RELOC_D30V_6: howto manager. (line 1277) 12819* BFD_RELOC_D30V_9_PCREL: howto manager. (line 1280) 12820* BFD_RELOC_D30V_9_PCREL_R: howto manager. (line 1284) 12821* BFD_RELOC_DLX_HI16_S: howto manager. (line 1321) 12822* BFD_RELOC_DLX_JMP26: howto manager. (line 1327) 12823* BFD_RELOC_DLX_LO16: howto manager. (line 1324) 12824* BFD_RELOC_EPIPHANY_HIGH: howto manager. (line 3761) 12825* BFD_RELOC_EPIPHANY_IMM11: howto manager. (line 3770) 12826* BFD_RELOC_EPIPHANY_IMM8: howto manager. (line 3774) 12827* BFD_RELOC_EPIPHANY_LOW: howto manager. (line 3764) 12828* BFD_RELOC_EPIPHANY_SIMM11: howto manager. (line 3767) 12829* BFD_RELOC_EPIPHANY_SIMM24: howto manager. (line 3758) 12830* BFD_RELOC_EPIPHANY_SIMM8: howto manager. (line 3755) 12831* BFD_RELOC_FR30_10_IN_8: howto manager. (line 1796) 12832* BFD_RELOC_FR30_12_PCREL: howto manager. (line 1804) 12833* BFD_RELOC_FR30_20: howto manager. (line 1780) 12834* BFD_RELOC_FR30_48: howto manager. (line 1777) 12835* BFD_RELOC_FR30_6_IN_4: howto manager. (line 1784) 12836* BFD_RELOC_FR30_8_IN_8: howto manager. (line 1788) 12837* BFD_RELOC_FR30_9_IN_8: howto manager. (line 1792) 12838* BFD_RELOC_FR30_9_PCREL: howto manager. (line 1800) 12839* BFD_RELOC_FRV_FUNCDESC: howto manager. (line 506) 12840* BFD_RELOC_FRV_FUNCDESC_GOT12: howto manager. (line 507) 12841* BFD_RELOC_FRV_FUNCDESC_GOTHI: howto manager. (line 508) 12842* BFD_RELOC_FRV_FUNCDESC_GOTLO: howto manager. (line 509) 12843* BFD_RELOC_FRV_FUNCDESC_GOTOFF12: howto manager. (line 511) 12844* BFD_RELOC_FRV_FUNCDESC_GOTOFFHI: howto manager. (line 512) 12845* BFD_RELOC_FRV_FUNCDESC_GOTOFFLO: howto manager. (line 513) 12846* BFD_RELOC_FRV_FUNCDESC_VALUE: howto manager. (line 510) 12847* BFD_RELOC_FRV_GETTLSOFF: howto manager. (line 517) 12848* BFD_RELOC_FRV_GETTLSOFF_RELAX: howto manager. (line 530) 12849* BFD_RELOC_FRV_GOT12: howto manager. (line 503) 12850* BFD_RELOC_FRV_GOTHI: howto manager. (line 504) 12851* BFD_RELOC_FRV_GOTLO: howto manager. (line 505) 12852* BFD_RELOC_FRV_GOTOFF12: howto manager. (line 514) 12853* BFD_RELOC_FRV_GOTOFFHI: howto manager. (line 515) 12854* BFD_RELOC_FRV_GOTOFFLO: howto manager. (line 516) 12855* BFD_RELOC_FRV_GOTTLSDESC12: howto manager. (line 519) 12856* BFD_RELOC_FRV_GOTTLSDESCHI: howto manager. (line 520) 12857* BFD_RELOC_FRV_GOTTLSDESCLO: howto manager. (line 521) 12858* BFD_RELOC_FRV_GOTTLSOFF12: howto manager. (line 525) 12859* BFD_RELOC_FRV_GOTTLSOFFHI: howto manager. (line 526) 12860* BFD_RELOC_FRV_GOTTLSOFFLO: howto manager. (line 527) 12861* BFD_RELOC_FRV_GPREL12: howto manager. (line 498) 12862* BFD_RELOC_FRV_GPREL32: howto manager. (line 500) 12863* BFD_RELOC_FRV_GPRELHI: howto manager. (line 501) 12864* BFD_RELOC_FRV_GPRELLO: howto manager. (line 502) 12865* BFD_RELOC_FRV_GPRELU12: howto manager. (line 499) 12866* BFD_RELOC_FRV_HI16: howto manager. (line 497) 12867* BFD_RELOC_FRV_LABEL16: howto manager. (line 494) 12868* BFD_RELOC_FRV_LABEL24: howto manager. (line 495) 12869* BFD_RELOC_FRV_LO16: howto manager. (line 496) 12870* BFD_RELOC_FRV_TLSDESC_RELAX: howto manager. (line 529) 12871* BFD_RELOC_FRV_TLSDESC_VALUE: howto manager. (line 518) 12872* BFD_RELOC_FRV_TLSMOFF: howto manager. (line 532) 12873* BFD_RELOC_FRV_TLSMOFF12: howto manager. (line 522) 12874* BFD_RELOC_FRV_TLSMOFFHI: howto manager. (line 523) 12875* BFD_RELOC_FRV_TLSMOFFLO: howto manager. (line 524) 12876* BFD_RELOC_FRV_TLSOFF: howto manager. (line 528) 12877* BFD_RELOC_FRV_TLSOFF_RELAX: howto manager. (line 531) 12878* BFD_RELOC_FT32_10: howto manager. (line 488) 12879* BFD_RELOC_FT32_17: howto manager. (line 490) 12880* BFD_RELOC_FT32_18: howto manager. (line 491) 12881* BFD_RELOC_FT32_20: howto manager. (line 489) 12882* BFD_RELOC_GPREL16: howto manager. (line 125) 12883* BFD_RELOC_GPREL32: howto manager. (line 126) 12884* BFD_RELOC_H8_DIR16A8: howto manager. (line 2784) 12885* BFD_RELOC_H8_DIR16R8: howto manager. (line 2785) 12886* BFD_RELOC_H8_DIR24A8: howto manager. (line 2786) 12887* BFD_RELOC_H8_DIR24R8: howto manager. (line 2787) 12888* BFD_RELOC_H8_DIR32A16: howto manager. (line 2788) 12889* BFD_RELOC_H8_DISP32A16: howto manager. (line 2789) 12890* BFD_RELOC_HI16: howto manager. (line 352) 12891* BFD_RELOC_HI16_BASEREL: howto manager. (line 101) 12892* BFD_RELOC_HI16_GOTOFF: howto manager. (line 57) 12893* BFD_RELOC_HI16_PCREL: howto manager. (line 364) 12894* BFD_RELOC_HI16_PLTOFF: howto manager. (line 69) 12895* BFD_RELOC_HI16_S: howto manager. (line 355) 12896* BFD_RELOC_HI16_S_BASEREL: howto manager. (line 102) 12897* BFD_RELOC_HI16_S_GOTOFF: howto manager. (line 58) 12898* BFD_RELOC_HI16_S_PCREL: howto manager. (line 367) 12899* BFD_RELOC_HI16_S_PLTOFF: howto manager. (line 70) 12900* BFD_RELOC_HI22: howto manager. (line 120) 12901* BFD_RELOC_I370_D12: howto manager. (line 802) 12902* BFD_RELOC_I960_CALLJ: howto manager. (line 132) 12903* BFD_RELOC_IA64_COPY: howto manager. (line 2444) 12904* BFD_RELOC_IA64_DIR32LSB: howto manager. (line 2389) 12905* BFD_RELOC_IA64_DIR32MSB: howto manager. (line 2388) 12906* BFD_RELOC_IA64_DIR64LSB: howto manager. (line 2391) 12907* BFD_RELOC_IA64_DIR64MSB: howto manager. (line 2390) 12908* BFD_RELOC_IA64_DTPMOD64LSB: howto manager. (line 2454) 12909* BFD_RELOC_IA64_DTPMOD64MSB: howto manager. (line 2453) 12910* BFD_RELOC_IA64_DTPREL14: howto manager. (line 2456) 12911* BFD_RELOC_IA64_DTPREL22: howto manager. (line 2457) 12912* BFD_RELOC_IA64_DTPREL32LSB: howto manager. (line 2460) 12913* BFD_RELOC_IA64_DTPREL32MSB: howto manager. (line 2459) 12914* BFD_RELOC_IA64_DTPREL64I: howto manager. (line 2458) 12915* BFD_RELOC_IA64_DTPREL64LSB: howto manager. (line 2462) 12916* BFD_RELOC_IA64_DTPREL64MSB: howto manager. (line 2461) 12917* BFD_RELOC_IA64_FPTR32LSB: howto manager. (line 2406) 12918* BFD_RELOC_IA64_FPTR32MSB: howto manager. (line 2405) 12919* BFD_RELOC_IA64_FPTR64I: howto manager. (line 2404) 12920* BFD_RELOC_IA64_FPTR64LSB: howto manager. (line 2408) 12921* BFD_RELOC_IA64_FPTR64MSB: howto manager. (line 2407) 12922* BFD_RELOC_IA64_GPREL22: howto manager. (line 2392) 12923* BFD_RELOC_IA64_GPREL32LSB: howto manager. (line 2395) 12924* BFD_RELOC_IA64_GPREL32MSB: howto manager. (line 2394) 12925* BFD_RELOC_IA64_GPREL64I: howto manager. (line 2393) 12926* BFD_RELOC_IA64_GPREL64LSB: howto manager. (line 2397) 12927* BFD_RELOC_IA64_GPREL64MSB: howto manager. (line 2396) 12928* BFD_RELOC_IA64_IMM14: howto manager. (line 2385) 12929* BFD_RELOC_IA64_IMM22: howto manager. (line 2386) 12930* BFD_RELOC_IA64_IMM64: howto manager. (line 2387) 12931* BFD_RELOC_IA64_IPLTLSB: howto manager. (line 2443) 12932* BFD_RELOC_IA64_IPLTMSB: howto manager. (line 2442) 12933* BFD_RELOC_IA64_LDXMOV: howto manager. (line 2446) 12934* BFD_RELOC_IA64_LTOFF22: howto manager. (line 2398) 12935* BFD_RELOC_IA64_LTOFF22X: howto manager. (line 2445) 12936* BFD_RELOC_IA64_LTOFF64I: howto manager. (line 2399) 12937* BFD_RELOC_IA64_LTOFF_DTPMOD22: howto manager. (line 2455) 12938* BFD_RELOC_IA64_LTOFF_DTPREL22: howto manager. (line 2463) 12939* BFD_RELOC_IA64_LTOFF_FPTR22: howto manager. (line 2420) 12940* BFD_RELOC_IA64_LTOFF_FPTR32LSB: howto manager. (line 2423) 12941* BFD_RELOC_IA64_LTOFF_FPTR32MSB: howto manager. (line 2422) 12942* BFD_RELOC_IA64_LTOFF_FPTR64I: howto manager. (line 2421) 12943* BFD_RELOC_IA64_LTOFF_FPTR64LSB: howto manager. (line 2425) 12944* BFD_RELOC_IA64_LTOFF_FPTR64MSB: howto manager. (line 2424) 12945* BFD_RELOC_IA64_LTOFF_TPREL22: howto manager. (line 2452) 12946* BFD_RELOC_IA64_LTV32LSB: howto manager. (line 2439) 12947* BFD_RELOC_IA64_LTV32MSB: howto manager. (line 2438) 12948* BFD_RELOC_IA64_LTV64LSB: howto manager. (line 2441) 12949* BFD_RELOC_IA64_LTV64MSB: howto manager. (line 2440) 12950* BFD_RELOC_IA64_PCREL21B: howto manager. (line 2409) 12951* BFD_RELOC_IA64_PCREL21BI: howto manager. (line 2410) 12952* BFD_RELOC_IA64_PCREL21F: howto manager. (line 2412) 12953* BFD_RELOC_IA64_PCREL21M: howto manager. (line 2411) 12954* BFD_RELOC_IA64_PCREL22: howto manager. (line 2413) 12955* BFD_RELOC_IA64_PCREL32LSB: howto manager. (line 2417) 12956* BFD_RELOC_IA64_PCREL32MSB: howto manager. (line 2416) 12957* BFD_RELOC_IA64_PCREL60B: howto manager. (line 2414) 12958* BFD_RELOC_IA64_PCREL64I: howto manager. (line 2415) 12959* BFD_RELOC_IA64_PCREL64LSB: howto manager. (line 2419) 12960* BFD_RELOC_IA64_PCREL64MSB: howto manager. (line 2418) 12961* BFD_RELOC_IA64_PLTOFF22: howto manager. (line 2400) 12962* BFD_RELOC_IA64_PLTOFF64I: howto manager. (line 2401) 12963* BFD_RELOC_IA64_PLTOFF64LSB: howto manager. (line 2403) 12964* BFD_RELOC_IA64_PLTOFF64MSB: howto manager. (line 2402) 12965* BFD_RELOC_IA64_REL32LSB: howto manager. (line 2435) 12966* BFD_RELOC_IA64_REL32MSB: howto manager. (line 2434) 12967* BFD_RELOC_IA64_REL64LSB: howto manager. (line 2437) 12968* BFD_RELOC_IA64_REL64MSB: howto manager. (line 2436) 12969* BFD_RELOC_IA64_SECREL32LSB: howto manager. (line 2431) 12970* BFD_RELOC_IA64_SECREL32MSB: howto manager. (line 2430) 12971* BFD_RELOC_IA64_SECREL64LSB: howto manager. (line 2433) 12972* BFD_RELOC_IA64_SECREL64MSB: howto manager. (line 2432) 12973* BFD_RELOC_IA64_SEGREL32LSB: howto manager. (line 2427) 12974* BFD_RELOC_IA64_SEGREL32MSB: howto manager. (line 2426) 12975* BFD_RELOC_IA64_SEGREL64LSB: howto manager. (line 2429) 12976* BFD_RELOC_IA64_SEGREL64MSB: howto manager. (line 2428) 12977* BFD_RELOC_IA64_TPREL14: howto manager. (line 2447) 12978* BFD_RELOC_IA64_TPREL22: howto manager. (line 2448) 12979* BFD_RELOC_IA64_TPREL64I: howto manager. (line 2449) 12980* BFD_RELOC_IA64_TPREL64LSB: howto manager. (line 2451) 12981* BFD_RELOC_IA64_TPREL64MSB: howto manager. (line 2450) 12982* BFD_RELOC_IP2K_ADDR16CJP: howto manager. (line 2337) 12983* BFD_RELOC_IP2K_BANK: howto manager. (line 2334) 12984* BFD_RELOC_IP2K_EX8DATA: howto manager. (line 2345) 12985* BFD_RELOC_IP2K_FR9: howto manager. (line 2331) 12986* BFD_RELOC_IP2K_FR_OFFSET: howto manager. (line 2358) 12987* BFD_RELOC_IP2K_HI8DATA: howto manager. (line 2344) 12988* BFD_RELOC_IP2K_HI8INSN: howto manager. (line 2349) 12989* BFD_RELOC_IP2K_LO8DATA: howto manager. (line 2343) 12990* BFD_RELOC_IP2K_LO8INSN: howto manager. (line 2348) 12991* BFD_RELOC_IP2K_PAGE3: howto manager. (line 2340) 12992* BFD_RELOC_IP2K_PC_SKIP: howto manager. (line 2352) 12993* BFD_RELOC_IP2K_TEXT: howto manager. (line 2355) 12994* BFD_RELOC_IQ2000_OFFSET_16: howto manager. (line 2908) 12995* BFD_RELOC_IQ2000_OFFSET_21: howto manager. (line 2909) 12996* BFD_RELOC_IQ2000_UHI16: howto manager. (line 2910) 12997* BFD_RELOC_LM32_16_GOT: howto manager. (line 3015) 12998* BFD_RELOC_LM32_BRANCH: howto manager. (line 3014) 12999* BFD_RELOC_LM32_CALL: howto manager. (line 3013) 13000* BFD_RELOC_LM32_COPY: howto manager. (line 3018) 13001* BFD_RELOC_LM32_GLOB_DAT: howto manager. (line 3019) 13002* BFD_RELOC_LM32_GOTOFF_HI16: howto manager. (line 3016) 13003* BFD_RELOC_LM32_GOTOFF_LO16: howto manager. (line 3017) 13004* BFD_RELOC_LM32_JMP_SLOT: howto manager. (line 3020) 13005* BFD_RELOC_LM32_RELATIVE: howto manager. (line 3021) 13006* BFD_RELOC_LO10: howto manager. (line 121) 13007* BFD_RELOC_LO16: howto manager. (line 361) 13008* BFD_RELOC_LO16_BASEREL: howto manager. (line 100) 13009* BFD_RELOC_LO16_GOTOFF: howto manager. (line 56) 13010* BFD_RELOC_LO16_PCREL: howto manager. (line 370) 13011* BFD_RELOC_LO16_PLTOFF: howto manager. (line 68) 13012* BFD_RELOC_M32C_HI8: howto manager. (line 1330) 13013* BFD_RELOC_M32C_RL_1ADDR: howto manager. (line 1332) 13014* BFD_RELOC_M32C_RL_2ADDR: howto manager. (line 1333) 13015* BFD_RELOC_M32C_RL_JUMP: howto manager. (line 1331) 13016* BFD_RELOC_M32R_10_PCREL: howto manager. (line 1340) 13017* BFD_RELOC_M32R_18_PCREL: howto manager. (line 1344) 13018* BFD_RELOC_M32R_24: howto manager. (line 1336) 13019* BFD_RELOC_M32R_26_PCREL: howto manager. (line 1347) 13020* BFD_RELOC_M32R_26_PLTREL: howto manager. (line 1366) 13021* BFD_RELOC_M32R_COPY: howto manager. (line 1367) 13022* BFD_RELOC_M32R_GLOB_DAT: howto manager. (line 1368) 13023* BFD_RELOC_M32R_GOT16_HI_SLO: howto manager. (line 1377) 13024* BFD_RELOC_M32R_GOT16_HI_ULO: howto manager. (line 1376) 13025* BFD_RELOC_M32R_GOT16_LO: howto manager. (line 1378) 13026* BFD_RELOC_M32R_GOT24: howto manager. (line 1365) 13027* BFD_RELOC_M32R_GOTOFF: howto manager. (line 1371) 13028* BFD_RELOC_M32R_GOTOFF_HI_SLO: howto manager. (line 1373) 13029* BFD_RELOC_M32R_GOTOFF_HI_ULO: howto manager. (line 1372) 13030* BFD_RELOC_M32R_GOTOFF_LO: howto manager. (line 1374) 13031* BFD_RELOC_M32R_GOTPC24: howto manager. (line 1375) 13032* BFD_RELOC_M32R_GOTPC_HI_SLO: howto manager. (line 1380) 13033* BFD_RELOC_M32R_GOTPC_HI_ULO: howto manager. (line 1379) 13034* BFD_RELOC_M32R_GOTPC_LO: howto manager. (line 1381) 13035* BFD_RELOC_M32R_HI16_SLO: howto manager. (line 1354) 13036* BFD_RELOC_M32R_HI16_ULO: howto manager. (line 1350) 13037* BFD_RELOC_M32R_JMP_SLOT: howto manager. (line 1369) 13038* BFD_RELOC_M32R_LO16: howto manager. (line 1358) 13039* BFD_RELOC_M32R_RELATIVE: howto manager. (line 1370) 13040* BFD_RELOC_M32R_SDA16: howto manager. (line 1361) 13041* BFD_RELOC_M68HC11_24: howto manager. (line 2499) 13042* BFD_RELOC_M68HC11_3B: howto manager. (line 2474) 13043* BFD_RELOC_M68HC11_HI8: howto manager. (line 2466) 13044* BFD_RELOC_M68HC11_LO16: howto manager. (line 2488) 13045* BFD_RELOC_M68HC11_LO8: howto manager. (line 2470) 13046* BFD_RELOC_M68HC11_PAGE: howto manager. (line 2494) 13047* BFD_RELOC_M68HC11_RL_GROUP: howto manager. (line 2483) 13048* BFD_RELOC_M68HC11_RL_JUMP: howto manager. (line 2477) 13049* BFD_RELOC_M68HC12_10_PCREL: howto manager. (line 2559) 13050* BFD_RELOC_M68HC12_16B: howto manager. (line 2553) 13051* BFD_RELOC_M68HC12_5B: howto manager. (line 2505) 13052* BFD_RELOC_M68HC12_9_PCREL: howto manager. (line 2556) 13053* BFD_RELOC_M68HC12_9B: howto manager. (line 2550) 13054* BFD_RELOC_M68HC12_HI8XG: howto manager. (line 2566) 13055* BFD_RELOC_M68HC12_LO8XG: howto manager. (line 2562) 13056* BFD_RELOC_MACH_O_ARM64_ADDEND: howto manager. (line 3061) 13057* BFD_RELOC_MACH_O_ARM64_GOT_LOAD_PAGE21: howto manager. (line 3064) 13058* BFD_RELOC_MACH_O_ARM64_GOT_LOAD_PAGEOFF12: howto manager. (line 3067) 13059* BFD_RELOC_MACH_O_ARM64_POINTER_TO_GOT: howto manager. (line 3070) 13060* BFD_RELOC_MACH_O_LOCAL_SECTDIFF: howto manager. (line 3028) 13061* BFD_RELOC_MACH_O_PAIR: howto manager. (line 3031) 13062* BFD_RELOC_MACH_O_SECTDIFF: howto manager. (line 3024) 13063* BFD_RELOC_MACH_O_SUBTRACTOR32: howto manager. (line 3034) 13064* BFD_RELOC_MACH_O_SUBTRACTOR64: howto manager. (line 3037) 13065* BFD_RELOC_MACH_O_X86_64_BRANCH32: howto manager. (line 3040) 13066* BFD_RELOC_MACH_O_X86_64_BRANCH8: howto manager. (line 3041) 13067* BFD_RELOC_MACH_O_X86_64_GOT: howto manager. (line 3045) 13068* BFD_RELOC_MACH_O_X86_64_GOT_LOAD: howto manager. (line 3048) 13069* BFD_RELOC_MACH_O_X86_64_PCREL32_1: howto manager. (line 3052) 13070* BFD_RELOC_MACH_O_X86_64_PCREL32_2: howto manager. (line 3055) 13071* BFD_RELOC_MACH_O_X86_64_PCREL32_4: howto manager. (line 3058) 13072* BFD_RELOC_MCORE_PCREL_32: howto manager. (line 1811) 13073* BFD_RELOC_MCORE_PCREL_IMM11BY2: howto manager. (line 1809) 13074* BFD_RELOC_MCORE_PCREL_IMM4BY2: howto manager. (line 1810) 13075* BFD_RELOC_MCORE_PCREL_IMM8BY4: howto manager. (line 1808) 13076* BFD_RELOC_MCORE_PCREL_JSR_IMM11BY2: howto manager. (line 1812) 13077* BFD_RELOC_MCORE_RVA: howto manager. (line 1813) 13078* BFD_RELOC_MEP_16: howto manager. (line 1817) 13079* BFD_RELOC_MEP_32: howto manager. (line 1818) 13080* BFD_RELOC_MEP_8: howto manager. (line 1816) 13081* BFD_RELOC_MEP_ADDR24A4: howto manager. (line 1833) 13082* BFD_RELOC_MEP_GNU_VTENTRY: howto manager. (line 1835) 13083* BFD_RELOC_MEP_GNU_VTINHERIT: howto manager. (line 1834) 13084* BFD_RELOC_MEP_GPREL: howto manager. (line 1827) 13085* BFD_RELOC_MEP_HI16S: howto manager. (line 1826) 13086* BFD_RELOC_MEP_HI16U: howto manager. (line 1825) 13087* BFD_RELOC_MEP_LOW16: howto manager. (line 1824) 13088* BFD_RELOC_MEP_PCABS24A2: howto manager. (line 1823) 13089* BFD_RELOC_MEP_PCREL12A2: howto manager. (line 1820) 13090* BFD_RELOC_MEP_PCREL17A2: howto manager. (line 1821) 13091* BFD_RELOC_MEP_PCREL24A2: howto manager. (line 1822) 13092* BFD_RELOC_MEP_PCREL8A2: howto manager. (line 1819) 13093* BFD_RELOC_MEP_TPREL: howto manager. (line 1828) 13094* BFD_RELOC_MEP_TPREL7: howto manager. (line 1829) 13095* BFD_RELOC_MEP_TPREL7A2: howto manager. (line 1830) 13096* BFD_RELOC_MEP_TPREL7A4: howto manager. (line 1831) 13097* BFD_RELOC_MEP_UIMM24: howto manager. (line 1832) 13098* BFD_RELOC_METAG_COPY: howto manager. (line 1857) 13099* BFD_RELOC_METAG_GETSET_GOT: howto manager. (line 1849) 13100* BFD_RELOC_METAG_GETSET_GOTOFF: howto manager. (line 1848) 13101* BFD_RELOC_METAG_GETSETOFF: howto manager. (line 1841) 13102* BFD_RELOC_METAG_GLOB_DAT: howto manager. (line 1860) 13103* BFD_RELOC_METAG_GOTOFF: howto manager. (line 1855) 13104* BFD_RELOC_METAG_HI16_GOTOFF: howto manager. (line 1846) 13105* BFD_RELOC_METAG_HI16_GOTPC: howto manager. (line 1850) 13106* BFD_RELOC_METAG_HI16_PLT: howto manager. (line 1852) 13107* BFD_RELOC_METAG_HIADDR16: howto manager. (line 1838) 13108* BFD_RELOC_METAG_HIOG: howto manager. (line 1842) 13109* BFD_RELOC_METAG_JMP_SLOT: howto manager. (line 1858) 13110* BFD_RELOC_METAG_LO16_GOTOFF: howto manager. (line 1847) 13111* BFD_RELOC_METAG_LO16_GOTPC: howto manager. (line 1851) 13112* BFD_RELOC_METAG_LO16_PLT: howto manager. (line 1853) 13113* BFD_RELOC_METAG_LOADDR16: howto manager. (line 1839) 13114* BFD_RELOC_METAG_LOOG: howto manager. (line 1843) 13115* BFD_RELOC_METAG_PLT: howto manager. (line 1856) 13116* BFD_RELOC_METAG_REL16: howto manager. (line 1845) 13117* BFD_RELOC_METAG_REL8: howto manager. (line 1844) 13118* BFD_RELOC_METAG_RELATIVE: howto manager. (line 1859) 13119* BFD_RELOC_METAG_RELBRANCH: howto manager. (line 1840) 13120* BFD_RELOC_METAG_RELBRANCH_PLT: howto manager. (line 1854) 13121* BFD_RELOC_METAG_TLS_DTPMOD: howto manager. (line 1871) 13122* BFD_RELOC_METAG_TLS_DTPOFF: howto manager. (line 1872) 13123* BFD_RELOC_METAG_TLS_GD: howto manager. (line 1861) 13124* BFD_RELOC_METAG_TLS_IE: howto manager. (line 1866) 13125* BFD_RELOC_METAG_TLS_IENONPIC: howto manager. (line 1867) 13126* BFD_RELOC_METAG_TLS_IENONPIC_HI16: howto manager. (line 1868) 13127* BFD_RELOC_METAG_TLS_IENONPIC_LO16: howto manager. (line 1869) 13128* BFD_RELOC_METAG_TLS_LDM: howto manager. (line 1862) 13129* BFD_RELOC_METAG_TLS_LDO: howto manager. (line 1865) 13130* BFD_RELOC_METAG_TLS_LDO_HI16: howto manager. (line 1863) 13131* BFD_RELOC_METAG_TLS_LDO_LO16: howto manager. (line 1864) 13132* BFD_RELOC_METAG_TLS_LE: howto manager. (line 1873) 13133* BFD_RELOC_METAG_TLS_LE_HI16: howto manager. (line 1874) 13134* BFD_RELOC_METAG_TLS_LE_LO16: howto manager. (line 1875) 13135* BFD_RELOC_METAG_TLS_TPOFF: howto manager. (line 1870) 13136* BFD_RELOC_MICROBLAZE_32_GOTOFF: howto manager. (line 3117) 13137* BFD_RELOC_MICROBLAZE_32_LO: howto manager. (line 3073) 13138* BFD_RELOC_MICROBLAZE_32_LO_PCREL: howto manager. (line 3077) 13139* BFD_RELOC_MICROBLAZE_32_ROSDA: howto manager. (line 3081) 13140* BFD_RELOC_MICROBLAZE_32_RWSDA: howto manager. (line 3085) 13141* BFD_RELOC_MICROBLAZE_32_SYM_OP_SYM: howto manager. (line 3089) 13142* BFD_RELOC_MICROBLAZE_32_TLSDTPMOD: howto manager. (line 3138) 13143* BFD_RELOC_MICROBLAZE_32_TLSDTPREL: howto manager. (line 3141) 13144* BFD_RELOC_MICROBLAZE_64_GOT: howto manager. (line 3103) 13145* BFD_RELOC_MICROBLAZE_64_GOTOFF: howto manager. (line 3112) 13146* BFD_RELOC_MICROBLAZE_64_GOTPC: howto manager. (line 3098) 13147* BFD_RELOC_MICROBLAZE_64_NONE: howto manager. (line 3093) 13148* BFD_RELOC_MICROBLAZE_64_PLT: howto manager. (line 3107) 13149* BFD_RELOC_MICROBLAZE_64_TLS: howto manager. (line 3125) 13150* BFD_RELOC_MICROBLAZE_64_TLSDTPREL: howto manager. (line 3144) 13151* BFD_RELOC_MICROBLAZE_64_TLSGD: howto manager. (line 3128) 13152* BFD_RELOC_MICROBLAZE_64_TLSGOTTPREL: howto manager. (line 3148) 13153* BFD_RELOC_MICROBLAZE_64_TLSLD: howto manager. (line 3133) 13154* BFD_RELOC_MICROBLAZE_64_TLSTPREL: howto manager. (line 3152) 13155* BFD_RELOC_MICROBLAZE_COPY: howto manager. (line 3121) 13156* BFD_RELOC_MICROMIPS_10_PCREL_S1: howto manager. (line 404) 13157* BFD_RELOC_MICROMIPS_16_PCREL_S1: howto manager. (line 405) 13158* BFD_RELOC_MICROMIPS_7_PCREL_S1: howto manager. (line 403) 13159* BFD_RELOC_MICROMIPS_CALL16: howto manager. (line 426) 13160* BFD_RELOC_MICROMIPS_CALL_HI16: howto manager. (line 432) 13161* BFD_RELOC_MICROMIPS_CALL_LO16: howto manager. (line 434) 13162* BFD_RELOC_MICROMIPS_GOT16: howto manager. (line 424) 13163* BFD_RELOC_MICROMIPS_GOT_DISP: howto manager. (line 442) 13164* BFD_RELOC_MICROMIPS_GOT_HI16: howto manager. (line 428) 13165* BFD_RELOC_MICROMIPS_GOT_LO16: howto manager. (line 430) 13166* BFD_RELOC_MICROMIPS_GOT_OFST: howto manager. (line 440) 13167* BFD_RELOC_MICROMIPS_GOT_PAGE: howto manager. (line 438) 13168* BFD_RELOC_MICROMIPS_GPREL16: howto manager. (line 417) 13169* BFD_RELOC_MICROMIPS_HI16: howto manager. (line 418) 13170* BFD_RELOC_MICROMIPS_HI16_S: howto manager. (line 419) 13171* BFD_RELOC_MICROMIPS_HIGHER: howto manager. (line 451) 13172* BFD_RELOC_MICROMIPS_HIGHEST: howto manager. (line 449) 13173* BFD_RELOC_MICROMIPS_JALR: howto manager. (line 457) 13174* BFD_RELOC_MICROMIPS_JMP: howto manager. (line 343) 13175* BFD_RELOC_MICROMIPS_LITERAL: howto manager. (line 400) 13176* BFD_RELOC_MICROMIPS_LO16: howto manager. (line 420) 13177* BFD_RELOC_MICROMIPS_SCN_DISP: howto manager. (line 453) 13178* BFD_RELOC_MICROMIPS_SUB: howto manager. (line 436) 13179* BFD_RELOC_MICROMIPS_TLS_DTPREL_HI16: howto manager. (line 467) 13180* BFD_RELOC_MICROMIPS_TLS_DTPREL_LO16: howto manager. (line 469) 13181* BFD_RELOC_MICROMIPS_TLS_GD: howto manager. (line 463) 13182* BFD_RELOC_MICROMIPS_TLS_GOTTPREL: howto manager. (line 471) 13183* BFD_RELOC_MICROMIPS_TLS_LDM: howto manager. (line 465) 13184* BFD_RELOC_MICROMIPS_TLS_TPREL_HI16: howto manager. (line 475) 13185* BFD_RELOC_MICROMIPS_TLS_TPREL_LO16: howto manager. (line 477) 13186* BFD_RELOC_MIPS16_16_PCREL_S1: howto manager. (line 408) 13187* BFD_RELOC_MIPS16_CALL16: howto manager. (line 374) 13188* BFD_RELOC_MIPS16_GOT16: howto manager. (line 373) 13189* BFD_RELOC_MIPS16_GPREL: howto manager. (line 349) 13190* BFD_RELOC_MIPS16_HI16: howto manager. (line 378) 13191* BFD_RELOC_MIPS16_HI16_S: howto manager. (line 381) 13192* BFD_RELOC_MIPS16_JMP: howto manager. (line 346) 13193* BFD_RELOC_MIPS16_LO16: howto manager. (line 387) 13194* BFD_RELOC_MIPS16_TLS_DTPREL_HI16: howto manager. (line 392) 13195* BFD_RELOC_MIPS16_TLS_DTPREL_LO16: howto manager. (line 393) 13196* BFD_RELOC_MIPS16_TLS_GD: howto manager. (line 390) 13197* BFD_RELOC_MIPS16_TLS_GOTTPREL: howto manager. (line 394) 13198* BFD_RELOC_MIPS16_TLS_LDM: howto manager. (line 391) 13199* BFD_RELOC_MIPS16_TLS_TPREL_HI16: howto manager. (line 395) 13200* BFD_RELOC_MIPS16_TLS_TPREL_LO16: howto manager. (line 396) 13201* BFD_RELOC_MIPS_18_PCREL_S3: howto manager. (line 413) 13202* BFD_RELOC_MIPS_19_PCREL_S2: howto manager. (line 414) 13203* BFD_RELOC_MIPS_21_PCREL_S2: howto manager. (line 411) 13204* BFD_RELOC_MIPS_26_PCREL_S2: howto manager. (line 412) 13205* BFD_RELOC_MIPS_CALL16: howto manager. (line 425) 13206* BFD_RELOC_MIPS_CALL_HI16: howto manager. (line 431) 13207* BFD_RELOC_MIPS_CALL_LO16: howto manager. (line 433) 13208* BFD_RELOC_MIPS_COPY: howto manager. (line 481) 13209* BFD_RELOC_MIPS_DELETE: howto manager. (line 447) 13210* BFD_RELOC_MIPS_EH: howto manager. (line 478) 13211* BFD_RELOC_MIPS_GOT16: howto manager. (line 423) 13212* BFD_RELOC_MIPS_GOT_DISP: howto manager. (line 441) 13213* BFD_RELOC_MIPS_GOT_HI16: howto manager. (line 427) 13214* BFD_RELOC_MIPS_GOT_LO16: howto manager. (line 429) 13215* BFD_RELOC_MIPS_GOT_OFST: howto manager. (line 439) 13216* BFD_RELOC_MIPS_GOT_PAGE: howto manager. (line 437) 13217* BFD_RELOC_MIPS_HIGHER: howto manager. (line 450) 13218* BFD_RELOC_MIPS_HIGHEST: howto manager. (line 448) 13219* BFD_RELOC_MIPS_INSERT_A: howto manager. (line 445) 13220* BFD_RELOC_MIPS_INSERT_B: howto manager. (line 446) 13221* BFD_RELOC_MIPS_JALR: howto manager. (line 456) 13222* BFD_RELOC_MIPS_JMP: howto manager. (line 342) 13223* BFD_RELOC_MIPS_JUMP_SLOT: howto manager. (line 482) 13224* BFD_RELOC_MIPS_LITERAL: howto manager. (line 399) 13225* BFD_RELOC_MIPS_REL16: howto manager. (line 454) 13226* BFD_RELOC_MIPS_RELGOT: howto manager. (line 455) 13227* BFD_RELOC_MIPS_SCN_DISP: howto manager. (line 452) 13228* BFD_RELOC_MIPS_SHIFT5: howto manager. (line 443) 13229* BFD_RELOC_MIPS_SHIFT6: howto manager. (line 444) 13230* BFD_RELOC_MIPS_SUB: howto manager. (line 435) 13231* BFD_RELOC_MIPS_TLS_DTPMOD32: howto manager. (line 458) 13232* BFD_RELOC_MIPS_TLS_DTPMOD64: howto manager. (line 460) 13233* BFD_RELOC_MIPS_TLS_DTPREL32: howto manager. (line 459) 13234* BFD_RELOC_MIPS_TLS_DTPREL64: howto manager. (line 461) 13235* BFD_RELOC_MIPS_TLS_DTPREL_HI16: howto manager. (line 466) 13236* BFD_RELOC_MIPS_TLS_DTPREL_LO16: howto manager. (line 468) 13237* BFD_RELOC_MIPS_TLS_GD: howto manager. (line 462) 13238* BFD_RELOC_MIPS_TLS_GOTTPREL: howto manager. (line 470) 13239* BFD_RELOC_MIPS_TLS_LDM: howto manager. (line 464) 13240* BFD_RELOC_MIPS_TLS_TPREL32: howto manager. (line 472) 13241* BFD_RELOC_MIPS_TLS_TPREL64: howto manager. (line 473) 13242* BFD_RELOC_MIPS_TLS_TPREL_HI16: howto manager. (line 474) 13243* BFD_RELOC_MIPS_TLS_TPREL_LO16: howto manager. (line 476) 13244* BFD_RELOC_MMIX_ADDR19: howto manager. (line 1904) 13245* BFD_RELOC_MMIX_ADDR27: howto manager. (line 1908) 13246* BFD_RELOC_MMIX_BASE_PLUS_OFFSET: howto manager. (line 1920) 13247* BFD_RELOC_MMIX_CBRANCH: howto manager. (line 1884) 13248* BFD_RELOC_MMIX_CBRANCH_1: howto manager. (line 1886) 13249* BFD_RELOC_MMIX_CBRANCH_2: howto manager. (line 1887) 13250* BFD_RELOC_MMIX_CBRANCH_3: howto manager. (line 1888) 13251* BFD_RELOC_MMIX_CBRANCH_J: howto manager. (line 1885) 13252* BFD_RELOC_MMIX_GETA: howto manager. (line 1878) 13253* BFD_RELOC_MMIX_GETA_1: howto manager. (line 1879) 13254* BFD_RELOC_MMIX_GETA_2: howto manager. (line 1880) 13255* BFD_RELOC_MMIX_GETA_3: howto manager. (line 1881) 13256* BFD_RELOC_MMIX_JMP: howto manager. (line 1898) 13257* BFD_RELOC_MMIX_JMP_1: howto manager. (line 1899) 13258* BFD_RELOC_MMIX_JMP_2: howto manager. (line 1900) 13259* BFD_RELOC_MMIX_JMP_3: howto manager. (line 1901) 13260* BFD_RELOC_MMIX_LOCAL: howto manager. (line 1924) 13261* BFD_RELOC_MMIX_PUSHJ: howto manager. (line 1891) 13262* BFD_RELOC_MMIX_PUSHJ_1: howto manager. (line 1892) 13263* BFD_RELOC_MMIX_PUSHJ_2: howto manager. (line 1893) 13264* BFD_RELOC_MMIX_PUSHJ_3: howto manager. (line 1894) 13265* BFD_RELOC_MMIX_PUSHJ_STUBBABLE: howto manager. (line 1895) 13266* BFD_RELOC_MMIX_REG: howto manager. (line 1916) 13267* BFD_RELOC_MMIX_REG_OR_BYTE: howto manager. (line 1912) 13268* BFD_RELOC_MN10300_16_PCREL: howto manager. (line 586) 13269* BFD_RELOC_MN10300_32_PCREL: howto manager. (line 582) 13270* BFD_RELOC_MN10300_ALIGN: howto manager. (line 567) 13271* BFD_RELOC_MN10300_COPY: howto manager. (line 550) 13272* BFD_RELOC_MN10300_GLOB_DAT: howto manager. (line 553) 13273* BFD_RELOC_MN10300_GOT16: howto manager. (line 546) 13274* BFD_RELOC_MN10300_GOT24: howto manager. (line 542) 13275* BFD_RELOC_MN10300_GOT32: howto manager. (line 538) 13276* BFD_RELOC_MN10300_GOTOFF24: howto manager. (line 535) 13277* BFD_RELOC_MN10300_JMP_SLOT: howto manager. (line 556) 13278* BFD_RELOC_MN10300_RELATIVE: howto manager. (line 559) 13279* BFD_RELOC_MN10300_SYM_DIFF: howto manager. (line 562) 13280* BFD_RELOC_MN10300_TLS_DTPMOD: howto manager. (line 577) 13281* BFD_RELOC_MN10300_TLS_DTPOFF: howto manager. (line 578) 13282* BFD_RELOC_MN10300_TLS_GD: howto manager. (line 571) 13283* BFD_RELOC_MN10300_TLS_GOTIE: howto manager. (line 574) 13284* BFD_RELOC_MN10300_TLS_IE: howto manager. (line 575) 13285* BFD_RELOC_MN10300_TLS_LD: howto manager. (line 572) 13286* BFD_RELOC_MN10300_TLS_LDO: howto manager. (line 573) 13287* BFD_RELOC_MN10300_TLS_LE: howto manager. (line 576) 13288* BFD_RELOC_MN10300_TLS_TPOFF: howto manager. (line 579) 13289* BFD_RELOC_MOXIE_10_PCREL: howto manager. (line 485) 13290* BFD_RELOC_MSP430_10_PCREL: howto manager. (line 2830) 13291* BFD_RELOC_MSP430_16: howto manager. (line 2832) 13292* BFD_RELOC_MSP430_16_BYTE: howto manager. (line 2834) 13293* BFD_RELOC_MSP430_16_PCREL: howto manager. (line 2831) 13294* BFD_RELOC_MSP430_16_PCREL_BYTE: howto manager. (line 2833) 13295* BFD_RELOC_MSP430_2X_PCREL: howto manager. (line 2835) 13296* BFD_RELOC_MSP430_ABS8: howto manager. (line 2837) 13297* BFD_RELOC_MSP430_ABS_HI16: howto manager. (line 2849) 13298* BFD_RELOC_MSP430_PREL31: howto manager. (line 2850) 13299* BFD_RELOC_MSP430_RL_PCREL: howto manager. (line 2836) 13300* BFD_RELOC_MSP430_SYM_DIFF: howto manager. (line 2851) 13301* BFD_RELOC_MSP430X_ABS16: howto manager. (line 2848) 13302* BFD_RELOC_MSP430X_ABS20_ADR_DST: howto manager. (line 2845) 13303* BFD_RELOC_MSP430X_ABS20_ADR_SRC: howto manager. (line 2844) 13304* BFD_RELOC_MSP430X_ABS20_EXT_DST: howto manager. (line 2842) 13305* BFD_RELOC_MSP430X_ABS20_EXT_ODST: howto manager. (line 2843) 13306* BFD_RELOC_MSP430X_ABS20_EXT_SRC: howto manager. (line 2841) 13307* BFD_RELOC_MSP430X_PCR16: howto manager. (line 2846) 13308* BFD_RELOC_MSP430X_PCR20_CALL: howto manager. (line 2847) 13309* BFD_RELOC_MSP430X_PCR20_EXT_DST: howto manager. (line 2839) 13310* BFD_RELOC_MSP430X_PCR20_EXT_ODST: howto manager. (line 2840) 13311* BFD_RELOC_MSP430X_PCR20_EXT_SRC: howto manager. (line 2838) 13312* BFD_RELOC_MT_GNU_VTENTRY: howto manager. (line 2824) 13313* BFD_RELOC_MT_GNU_VTINHERIT: howto manager. (line 2821) 13314* BFD_RELOC_MT_HI16: howto manager. (line 2815) 13315* BFD_RELOC_MT_LO16: howto manager. (line 2818) 13316* BFD_RELOC_MT_PC16: howto manager. (line 2812) 13317* BFD_RELOC_MT_PCINSN8: howto manager. (line 2827) 13318* BFD_RELOC_NDS32_10_UPCREL: howto manager. (line 1533) 13319* BFD_RELOC_NDS32_10IFCU_PCREL: howto manager. (line 1566) 13320* BFD_RELOC_NDS32_15_FIXED: howto manager. (line 1487) 13321* BFD_RELOC_NDS32_15_PCREL: howto manager. (line 1395) 13322* BFD_RELOC_NDS32_17_FIXED: howto manager. (line 1488) 13323* BFD_RELOC_NDS32_17_PCREL: howto manager. (line 1398) 13324* BFD_RELOC_NDS32_17IFC_PCREL: howto manager. (line 1565) 13325* BFD_RELOC_NDS32_20: howto manager. (line 1384) 13326* BFD_RELOC_NDS32_25_ABS: howto manager. (line 1560) 13327* BFD_RELOC_NDS32_25_FIXED: howto manager. (line 1489) 13328* BFD_RELOC_NDS32_25_PCREL: howto manager. (line 1401) 13329* BFD_RELOC_NDS32_25_PLTREL: howto manager. (line 1462) 13330* BFD_RELOC_NDS32_5: howto manager. (line 1530) 13331* BFD_RELOC_NDS32_9_FIXED: howto manager. (line 1486) 13332* BFD_RELOC_NDS32_9_PCREL: howto manager. (line 1387) 13333* BFD_RELOC_NDS32_9_PLTREL: howto manager. (line 1461) 13334* BFD_RELOC_NDS32_COPY: howto manager. (line 1463) 13335* BFD_RELOC_NDS32_DATA: howto manager. (line 1563) 13336* BFD_RELOC_NDS32_DIFF16: howto manager. (line 1554) 13337* BFD_RELOC_NDS32_DIFF32: howto manager. (line 1555) 13338* BFD_RELOC_NDS32_DIFF8: howto manager. (line 1553) 13339* BFD_RELOC_NDS32_DIFF_ULEB128: howto manager. (line 1556) 13340* BFD_RELOC_NDS32_DWARF2_LEB: howto manager. (line 1513) 13341* BFD_RELOC_NDS32_DWARF2_OP1: howto manager. (line 1511) 13342* BFD_RELOC_NDS32_DWARF2_OP2: howto manager. (line 1512) 13343* BFD_RELOC_NDS32_EMPTY: howto manager. (line 1557) 13344* BFD_RELOC_NDS32_GLOB_DAT: howto manager. (line 1464) 13345* BFD_RELOC_NDS32_GOT15S2: howto manager. (line 1526) 13346* BFD_RELOC_NDS32_GOT17S2: howto manager. (line 1527) 13347* BFD_RELOC_NDS32_GOT20: howto manager. (line 1460) 13348* BFD_RELOC_NDS32_GOT_HI20: howto manager. (line 1471) 13349* BFD_RELOC_NDS32_GOT_LO12: howto manager. (line 1472) 13350* BFD_RELOC_NDS32_GOT_LO15: howto manager. (line 1522) 13351* BFD_RELOC_NDS32_GOT_LO19: howto manager. (line 1523) 13352* BFD_RELOC_NDS32_GOT_SUFF: howto manager. (line 1541) 13353* BFD_RELOC_NDS32_GOTOFF: howto manager. (line 1467) 13354* BFD_RELOC_NDS32_GOTOFF_HI20: howto manager. (line 1468) 13355* BFD_RELOC_NDS32_GOTOFF_LO12: howto manager. (line 1469) 13356* BFD_RELOC_NDS32_GOTOFF_LO15: howto manager. (line 1524) 13357* BFD_RELOC_NDS32_GOTOFF_LO19: howto manager. (line 1525) 13358* BFD_RELOC_NDS32_GOTOFF_SUFF: howto manager. (line 1542) 13359* BFD_RELOC_NDS32_GOTPC20: howto manager. (line 1470) 13360* BFD_RELOC_NDS32_GOTPC_HI20: howto manager. (line 1473) 13361* BFD_RELOC_NDS32_GOTPC_LO12: howto manager. (line 1474) 13362* BFD_RELOC_NDS32_GOTTPOFF: howto manager. (line 1574) 13363* BFD_RELOC_NDS32_HI20: howto manager. (line 1404) 13364* BFD_RELOC_NDS32_INSN16: howto manager. (line 1477) 13365* BFD_RELOC_NDS32_JMP_SLOT: howto manager. (line 1465) 13366* BFD_RELOC_NDS32_LABEL: howto manager. (line 1478) 13367* BFD_RELOC_NDS32_LO12S0: howto manager. (line 1420) 13368* BFD_RELOC_NDS32_LO12S0_ORI: howto manager. (line 1424) 13369* BFD_RELOC_NDS32_LO12S1: howto manager. (line 1416) 13370* BFD_RELOC_NDS32_LO12S2: howto manager. (line 1412) 13371* BFD_RELOC_NDS32_LO12S2_DP: howto manager. (line 1507) 13372* BFD_RELOC_NDS32_LO12S2_SP: howto manager. (line 1508) 13373* BFD_RELOC_NDS32_LO12S3: howto manager. (line 1408) 13374* BFD_RELOC_NDS32_LOADSTORE: howto manager. (line 1485) 13375* BFD_RELOC_NDS32_LONGCALL1: howto manager. (line 1479) 13376* BFD_RELOC_NDS32_LONGCALL2: howto manager. (line 1480) 13377* BFD_RELOC_NDS32_LONGCALL3: howto manager. (line 1481) 13378* BFD_RELOC_NDS32_LONGCALL4: howto manager. (line 1490) 13379* BFD_RELOC_NDS32_LONGCALL5: howto manager. (line 1491) 13380* BFD_RELOC_NDS32_LONGCALL6: howto manager. (line 1492) 13381* BFD_RELOC_NDS32_LONGJUMP1: howto manager. (line 1482) 13382* BFD_RELOC_NDS32_LONGJUMP2: howto manager. (line 1483) 13383* BFD_RELOC_NDS32_LONGJUMP3: howto manager. (line 1484) 13384* BFD_RELOC_NDS32_LONGJUMP4: howto manager. (line 1493) 13385* BFD_RELOC_NDS32_LONGJUMP5: howto manager. (line 1494) 13386* BFD_RELOC_NDS32_LONGJUMP6: howto manager. (line 1495) 13387* BFD_RELOC_NDS32_LONGJUMP7: howto manager. (line 1496) 13388* BFD_RELOC_NDS32_MINUEND: howto manager. (line 1551) 13389* BFD_RELOC_NDS32_MULCALL_SUFF: howto manager. (line 1544) 13390* BFD_RELOC_NDS32_PLT_GOT_SUFF: howto manager. (line 1543) 13391* BFD_RELOC_NDS32_PLT_GOTREL_HI20: howto manager. (line 1501) 13392* BFD_RELOC_NDS32_PLT_GOTREL_LO12: howto manager. (line 1502) 13393* BFD_RELOC_NDS32_PLT_GOTREL_LO15: howto manager. (line 1520) 13394* BFD_RELOC_NDS32_PLT_GOTREL_LO19: howto manager. (line 1521) 13395* BFD_RELOC_NDS32_PLT_GOTREL_LO20: howto manager. (line 1519) 13396* BFD_RELOC_NDS32_PLTBLOCK: howto manager. (line 1548) 13397* BFD_RELOC_NDS32_PLTREL_HI20: howto manager. (line 1499) 13398* BFD_RELOC_NDS32_PLTREL_LO12: howto manager. (line 1500) 13399* BFD_RELOC_NDS32_PTR: howto manager. (line 1545) 13400* BFD_RELOC_NDS32_PTR_COUNT: howto manager. (line 1546) 13401* BFD_RELOC_NDS32_PTR_RESOLVED: howto manager. (line 1547) 13402* BFD_RELOC_NDS32_RELATIVE: howto manager. (line 1466) 13403* BFD_RELOC_NDS32_RELAX_ENTRY: howto manager. (line 1540) 13404* BFD_RELOC_NDS32_RELAX_REGION_BEGIN: howto manager. (line 1549) 13405* BFD_RELOC_NDS32_RELAX_REGION_END: howto manager. (line 1550) 13406* BFD_RELOC_NDS32_SDA12S2_DP: howto manager. (line 1505) 13407* BFD_RELOC_NDS32_SDA12S2_SP: howto manager. (line 1506) 13408* BFD_RELOC_NDS32_SDA15S0: howto manager. (line 1440) 13409* BFD_RELOC_NDS32_SDA15S1: howto manager. (line 1436) 13410* BFD_RELOC_NDS32_SDA15S2: howto manager. (line 1432) 13411* BFD_RELOC_NDS32_SDA15S3: howto manager. (line 1428) 13412* BFD_RELOC_NDS32_SDA16S3: howto manager. (line 1444) 13413* BFD_RELOC_NDS32_SDA17S2: howto manager. (line 1448) 13414* BFD_RELOC_NDS32_SDA18S1: howto manager. (line 1452) 13415* BFD_RELOC_NDS32_SDA19S0: howto manager. (line 1456) 13416* BFD_RELOC_NDS32_SDA_FP7U2_RELA: howto manager. (line 1537) 13417* BFD_RELOC_NDS32_SUBTRAHEND: howto manager. (line 1552) 13418* BFD_RELOC_NDS32_TLS_IE_HI20: howto manager. (line 1575) 13419* BFD_RELOC_NDS32_TLS_IE_LO12S2: howto manager. (line 1576) 13420* BFD_RELOC_NDS32_TLS_LE_15S0: howto manager. (line 1579) 13421* BFD_RELOC_NDS32_TLS_LE_15S1: howto manager. (line 1580) 13422* BFD_RELOC_NDS32_TLS_LE_15S2: howto manager. (line 1581) 13423* BFD_RELOC_NDS32_TLS_LE_20: howto manager. (line 1578) 13424* BFD_RELOC_NDS32_TLS_LE_ADD: howto manager. (line 1572) 13425* BFD_RELOC_NDS32_TLS_LE_HI20: howto manager. (line 1570) 13426* BFD_RELOC_NDS32_TLS_LE_LO12: howto manager. (line 1571) 13427* BFD_RELOC_NDS32_TLS_LE_LS: howto manager. (line 1573) 13428* BFD_RELOC_NDS32_TLS_TPOFF: howto manager. (line 1577) 13429* BFD_RELOC_NDS32_TPOFF: howto manager. (line 1569) 13430* BFD_RELOC_NDS32_TRAN: howto manager. (line 1564) 13431* BFD_RELOC_NDS32_UPDATE_TA: howto manager. (line 1516) 13432* BFD_RELOC_NDS32_WORD_9_PCREL: howto manager. (line 1391) 13433* BFD_RELOC_NIOS2_ALIGN: howto manager. (line 2868) 13434* BFD_RELOC_NIOS2_CACHE_OPX: howto manager. (line 2858) 13435* BFD_RELOC_NIOS2_CALL16: howto manager. (line 2870) 13436* BFD_RELOC_NIOS2_CALL26: howto manager. (line 2856) 13437* BFD_RELOC_NIOS2_CALL26_NOAT: howto manager. (line 2888) 13438* BFD_RELOC_NIOS2_CALL_HA: howto manager. (line 2892) 13439* BFD_RELOC_NIOS2_CALL_LO: howto manager. (line 2891) 13440* BFD_RELOC_NIOS2_CALLR: howto manager. (line 2867) 13441* BFD_RELOC_NIOS2_CJMP: howto manager. (line 2866) 13442* BFD_RELOC_NIOS2_COPY: howto manager. (line 2883) 13443* BFD_RELOC_NIOS2_GLOB_DAT: howto manager. (line 2884) 13444* BFD_RELOC_NIOS2_GOT16: howto manager. (line 2869) 13445* BFD_RELOC_NIOS2_GOT_HA: howto manager. (line 2890) 13446* BFD_RELOC_NIOS2_GOT_LO: howto manager. (line 2889) 13447* BFD_RELOC_NIOS2_GOTOFF: howto manager. (line 2887) 13448* BFD_RELOC_NIOS2_GOTOFF_HA: howto manager. (line 2872) 13449* BFD_RELOC_NIOS2_GOTOFF_LO: howto manager. (line 2871) 13450* BFD_RELOC_NIOS2_GPREL: howto manager. (line 2864) 13451* BFD_RELOC_NIOS2_HI16: howto manager. (line 2861) 13452* BFD_RELOC_NIOS2_HIADJ16: howto manager. (line 2863) 13453* BFD_RELOC_NIOS2_IMM5: howto manager. (line 2857) 13454* BFD_RELOC_NIOS2_IMM6: howto manager. (line 2859) 13455* BFD_RELOC_NIOS2_IMM8: howto manager. (line 2860) 13456* BFD_RELOC_NIOS2_JUMP_SLOT: howto manager. (line 2885) 13457* BFD_RELOC_NIOS2_LO16: howto manager. (line 2862) 13458* BFD_RELOC_NIOS2_PCREL_HA: howto manager. (line 2874) 13459* BFD_RELOC_NIOS2_PCREL_LO: howto manager. (line 2873) 13460* BFD_RELOC_NIOS2_R2_F1I5_2: howto manager. (line 2902) 13461* BFD_RELOC_NIOS2_R2_I10_1_PCREL: howto manager. (line 2894) 13462* BFD_RELOC_NIOS2_R2_L5I4X1: howto manager. (line 2903) 13463* BFD_RELOC_NIOS2_R2_S12: howto manager. (line 2893) 13464* BFD_RELOC_NIOS2_R2_T1I7_1_PCREL: howto manager. (line 2895) 13465* BFD_RELOC_NIOS2_R2_T1I7_2: howto manager. (line 2896) 13466* BFD_RELOC_NIOS2_R2_T1X1I6: howto manager. (line 2904) 13467* BFD_RELOC_NIOS2_R2_T1X1I6_2: howto manager. (line 2905) 13468* BFD_RELOC_NIOS2_R2_T2I4: howto manager. (line 2897) 13469* BFD_RELOC_NIOS2_R2_T2I4_1: howto manager. (line 2898) 13470* BFD_RELOC_NIOS2_R2_T2I4_2: howto manager. (line 2899) 13471* BFD_RELOC_NIOS2_R2_X1I7_2: howto manager. (line 2900) 13472* BFD_RELOC_NIOS2_R2_X2L5: howto manager. (line 2901) 13473* BFD_RELOC_NIOS2_RELATIVE: howto manager. (line 2886) 13474* BFD_RELOC_NIOS2_S16: howto manager. (line 2854) 13475* BFD_RELOC_NIOS2_TLS_DTPMOD: howto manager. (line 2880) 13476* BFD_RELOC_NIOS2_TLS_DTPREL: howto manager. (line 2881) 13477* BFD_RELOC_NIOS2_TLS_GD16: howto manager. (line 2875) 13478* BFD_RELOC_NIOS2_TLS_IE16: howto manager. (line 2878) 13479* BFD_RELOC_NIOS2_TLS_LDM16: howto manager. (line 2876) 13480* BFD_RELOC_NIOS2_TLS_LDO16: howto manager. (line 2877) 13481* BFD_RELOC_NIOS2_TLS_LE16: howto manager. (line 2879) 13482* BFD_RELOC_NIOS2_TLS_TPREL: howto manager. (line 2882) 13483* BFD_RELOC_NIOS2_U16: howto manager. (line 2855) 13484* BFD_RELOC_NIOS2_UJMP: howto manager. (line 2865) 13485* BFD_RELOC_NONE: howto manager. (line 135) 13486* BFD_RELOC_NS32K_DISP_16: howto manager. (line 657) 13487* BFD_RELOC_NS32K_DISP_16_PCREL: howto manager. (line 660) 13488* BFD_RELOC_NS32K_DISP_32: howto manager. (line 658) 13489* BFD_RELOC_NS32K_DISP_32_PCREL: howto manager. (line 661) 13490* BFD_RELOC_NS32K_DISP_8: howto manager. (line 656) 13491* BFD_RELOC_NS32K_DISP_8_PCREL: howto manager. (line 659) 13492* BFD_RELOC_NS32K_IMM_16: howto manager. (line 651) 13493* BFD_RELOC_NS32K_IMM_16_PCREL: howto manager. (line 654) 13494* BFD_RELOC_NS32K_IMM_32: howto manager. (line 652) 13495* BFD_RELOC_NS32K_IMM_32_PCREL: howto manager. (line 655) 13496* BFD_RELOC_NS32K_IMM_8: howto manager. (line 650) 13497* BFD_RELOC_NS32K_IMM_8_PCREL: howto manager. (line 653) 13498* BFD_RELOC_OR1K_COPY: howto manager. (line 2765) 13499* BFD_RELOC_OR1K_GLOB_DAT: howto manager. (line 2766) 13500* BFD_RELOC_OR1K_GOT16: howto manager. (line 2761) 13501* BFD_RELOC_OR1K_GOTOFF_HI16: howto manager. (line 2763) 13502* BFD_RELOC_OR1K_GOTOFF_LO16: howto manager. (line 2764) 13503* BFD_RELOC_OR1K_GOTPC_HI16: howto manager. (line 2759) 13504* BFD_RELOC_OR1K_GOTPC_LO16: howto manager. (line 2760) 13505* BFD_RELOC_OR1K_JMP_SLOT: howto manager. (line 2767) 13506* BFD_RELOC_OR1K_PLT26: howto manager. (line 2762) 13507* BFD_RELOC_OR1K_REL_26: howto manager. (line 2758) 13508* BFD_RELOC_OR1K_RELATIVE: howto manager. (line 2768) 13509* BFD_RELOC_OR1K_TLS_DTPMOD: howto manager. (line 2781) 13510* BFD_RELOC_OR1K_TLS_DTPOFF: howto manager. (line 2780) 13511* BFD_RELOC_OR1K_TLS_GD_HI16: howto manager. (line 2769) 13512* BFD_RELOC_OR1K_TLS_GD_LO16: howto manager. (line 2770) 13513* BFD_RELOC_OR1K_TLS_IE_HI16: howto manager. (line 2775) 13514* BFD_RELOC_OR1K_TLS_IE_LO16: howto manager. (line 2776) 13515* BFD_RELOC_OR1K_TLS_LDM_HI16: howto manager. (line 2771) 13516* BFD_RELOC_OR1K_TLS_LDM_LO16: howto manager. (line 2772) 13517* BFD_RELOC_OR1K_TLS_LDO_HI16: howto manager. (line 2773) 13518* BFD_RELOC_OR1K_TLS_LDO_LO16: howto manager. (line 2774) 13519* BFD_RELOC_OR1K_TLS_LE_HI16: howto manager. (line 2777) 13520* BFD_RELOC_OR1K_TLS_LE_LO16: howto manager. (line 2778) 13521* BFD_RELOC_OR1K_TLS_TPOFF: howto manager. (line 2779) 13522* BFD_RELOC_PDP11_DISP_6_PCREL: howto manager. (line 665) 13523* BFD_RELOC_PDP11_DISP_8_PCREL: howto manager. (line 664) 13524* BFD_RELOC_PJ_CODE_DIR16: howto manager. (line 670) 13525* BFD_RELOC_PJ_CODE_DIR32: howto manager. (line 671) 13526* BFD_RELOC_PJ_CODE_HI16: howto manager. (line 668) 13527* BFD_RELOC_PJ_CODE_LO16: howto manager. (line 669) 13528* BFD_RELOC_PJ_CODE_REL16: howto manager. (line 672) 13529* BFD_RELOC_PJ_CODE_REL32: howto manager. (line 673) 13530* BFD_RELOC_PPC64_ADDR16_DS: howto manager. (line 737) 13531* BFD_RELOC_PPC64_ADDR16_HIGH: howto manager. (line 748) 13532* BFD_RELOC_PPC64_ADDR16_HIGHA: howto manager. (line 749) 13533* BFD_RELOC_PPC64_ADDR16_LO_DS: howto manager. (line 738) 13534* BFD_RELOC_PPC64_ADDR64_LOCAL: howto manager. (line 750) 13535* BFD_RELOC_PPC64_DTPREL16_DS: howto manager. (line 790) 13536* BFD_RELOC_PPC64_DTPREL16_HIGH: howto manager. (line 798) 13537* BFD_RELOC_PPC64_DTPREL16_HIGHA: howto manager. (line 799) 13538* BFD_RELOC_PPC64_DTPREL16_HIGHER: howto manager. (line 792) 13539* BFD_RELOC_PPC64_DTPREL16_HIGHERA: howto manager. (line 793) 13540* BFD_RELOC_PPC64_DTPREL16_HIGHEST: howto manager. (line 794) 13541* BFD_RELOC_PPC64_DTPREL16_HIGHESTA: howto manager. (line 795) 13542* BFD_RELOC_PPC64_DTPREL16_LO_DS: howto manager. (line 791) 13543* BFD_RELOC_PPC64_ENTRY: howto manager. (line 751) 13544* BFD_RELOC_PPC64_GOT16_DS: howto manager. (line 739) 13545* BFD_RELOC_PPC64_GOT16_LO_DS: howto manager. (line 740) 13546* BFD_RELOC_PPC64_HIGHER: howto manager. (line 725) 13547* BFD_RELOC_PPC64_HIGHER_S: howto manager. (line 726) 13548* BFD_RELOC_PPC64_HIGHEST: howto manager. (line 727) 13549* BFD_RELOC_PPC64_HIGHEST_S: howto manager. (line 728) 13550* BFD_RELOC_PPC64_PLT16_LO_DS: howto manager. (line 741) 13551* BFD_RELOC_PPC64_PLTGOT16: howto manager. (line 733) 13552* BFD_RELOC_PPC64_PLTGOT16_DS: howto manager. (line 746) 13553* BFD_RELOC_PPC64_PLTGOT16_HA: howto manager. (line 736) 13554* BFD_RELOC_PPC64_PLTGOT16_HI: howto manager. (line 735) 13555* BFD_RELOC_PPC64_PLTGOT16_LO: howto manager. (line 734) 13556* BFD_RELOC_PPC64_PLTGOT16_LO_DS: howto manager. (line 747) 13557* BFD_RELOC_PPC64_SECTOFF_DS: howto manager. (line 742) 13558* BFD_RELOC_PPC64_SECTOFF_LO_DS: howto manager. (line 743) 13559* BFD_RELOC_PPC64_TOC: howto manager. (line 732) 13560* BFD_RELOC_PPC64_TOC16_DS: howto manager. (line 744) 13561* BFD_RELOC_PPC64_TOC16_HA: howto manager. (line 731) 13562* BFD_RELOC_PPC64_TOC16_HI: howto manager. (line 730) 13563* BFD_RELOC_PPC64_TOC16_LO: howto manager. (line 729) 13564* BFD_RELOC_PPC64_TOC16_LO_DS: howto manager. (line 745) 13565* BFD_RELOC_PPC64_TPREL16_DS: howto manager. (line 784) 13566* BFD_RELOC_PPC64_TPREL16_HIGH: howto manager. (line 796) 13567* BFD_RELOC_PPC64_TPREL16_HIGHA: howto manager. (line 797) 13568* BFD_RELOC_PPC64_TPREL16_HIGHER: howto manager. (line 786) 13569* BFD_RELOC_PPC64_TPREL16_HIGHERA: howto manager. (line 787) 13570* BFD_RELOC_PPC64_TPREL16_HIGHEST: howto manager. (line 788) 13571* BFD_RELOC_PPC64_TPREL16_HIGHESTA: howto manager. (line 789) 13572* BFD_RELOC_PPC64_TPREL16_LO_DS: howto manager. (line 785) 13573* BFD_RELOC_PPC_16DX_HA: howto manager. (line 723) 13574* BFD_RELOC_PPC_B16: howto manager. (line 679) 13575* BFD_RELOC_PPC_B16_BRNTAKEN: howto manager. (line 681) 13576* BFD_RELOC_PPC_B16_BRTAKEN: howto manager. (line 680) 13577* BFD_RELOC_PPC_B26: howto manager. (line 676) 13578* BFD_RELOC_PPC_BA16: howto manager. (line 682) 13579* BFD_RELOC_PPC_BA16_BRNTAKEN: howto manager. (line 684) 13580* BFD_RELOC_PPC_BA16_BRTAKEN: howto manager. (line 683) 13581* BFD_RELOC_PPC_BA26: howto manager. (line 677) 13582* BFD_RELOC_PPC_COPY: howto manager. (line 685) 13583* BFD_RELOC_PPC_DTPMOD: howto manager. (line 757) 13584* BFD_RELOC_PPC_DTPREL: howto manager. (line 767) 13585* BFD_RELOC_PPC_DTPREL16: howto manager. (line 763) 13586* BFD_RELOC_PPC_DTPREL16_HA: howto manager. (line 766) 13587* BFD_RELOC_PPC_DTPREL16_HI: howto manager. (line 765) 13588* BFD_RELOC_PPC_DTPREL16_LO: howto manager. (line 764) 13589* BFD_RELOC_PPC_EMB_BIT_FLD: howto manager. (line 704) 13590* BFD_RELOC_PPC_EMB_MRKREF: howto manager. (line 699) 13591* BFD_RELOC_PPC_EMB_NADDR16: howto manager. (line 691) 13592* BFD_RELOC_PPC_EMB_NADDR16_HA: howto manager. (line 694) 13593* BFD_RELOC_PPC_EMB_NADDR16_HI: howto manager. (line 693) 13594* BFD_RELOC_PPC_EMB_NADDR16_LO: howto manager. (line 692) 13595* BFD_RELOC_PPC_EMB_NADDR32: howto manager. (line 690) 13596* BFD_RELOC_PPC_EMB_RELSDA: howto manager. (line 705) 13597* BFD_RELOC_PPC_EMB_RELSEC16: howto manager. (line 700) 13598* BFD_RELOC_PPC_EMB_RELST_HA: howto manager. (line 703) 13599* BFD_RELOC_PPC_EMB_RELST_HI: howto manager. (line 702) 13600* BFD_RELOC_PPC_EMB_RELST_LO: howto manager. (line 701) 13601* BFD_RELOC_PPC_EMB_SDA21: howto manager. (line 698) 13602* BFD_RELOC_PPC_EMB_SDA2I16: howto manager. (line 696) 13603* BFD_RELOC_PPC_EMB_SDA2REL: howto manager. (line 697) 13604* BFD_RELOC_PPC_EMB_SDAI16: howto manager. (line 695) 13605* BFD_RELOC_PPC_GLOB_DAT: howto manager. (line 686) 13606* BFD_RELOC_PPC_GOT_DTPREL16: howto manager. (line 780) 13607* BFD_RELOC_PPC_GOT_DTPREL16_HA: howto manager. (line 783) 13608* BFD_RELOC_PPC_GOT_DTPREL16_HI: howto manager. (line 782) 13609* BFD_RELOC_PPC_GOT_DTPREL16_LO: howto manager. (line 781) 13610* BFD_RELOC_PPC_GOT_TLSGD16: howto manager. (line 768) 13611* BFD_RELOC_PPC_GOT_TLSGD16_HA: howto manager. (line 771) 13612* BFD_RELOC_PPC_GOT_TLSGD16_HI: howto manager. (line 770) 13613* BFD_RELOC_PPC_GOT_TLSGD16_LO: howto manager. (line 769) 13614* BFD_RELOC_PPC_GOT_TLSLD16: howto manager. (line 772) 13615* BFD_RELOC_PPC_GOT_TLSLD16_HA: howto manager. (line 775) 13616* BFD_RELOC_PPC_GOT_TLSLD16_HI: howto manager. (line 774) 13617* BFD_RELOC_PPC_GOT_TLSLD16_LO: howto manager. (line 773) 13618* BFD_RELOC_PPC_GOT_TPREL16: howto manager. (line 776) 13619* BFD_RELOC_PPC_GOT_TPREL16_HA: howto manager. (line 779) 13620* BFD_RELOC_PPC_GOT_TPREL16_HI: howto manager. (line 778) 13621* BFD_RELOC_PPC_GOT_TPREL16_LO: howto manager. (line 777) 13622* BFD_RELOC_PPC_JMP_SLOT: howto manager. (line 687) 13623* BFD_RELOC_PPC_LOCAL24PC: howto manager. (line 689) 13624* BFD_RELOC_PPC_REL16DX_HA: howto manager. (line 724) 13625* BFD_RELOC_PPC_RELATIVE: howto manager. (line 688) 13626* BFD_RELOC_PPC_TLS: howto manager. (line 754) 13627* BFD_RELOC_PPC_TLSGD: howto manager. (line 755) 13628* BFD_RELOC_PPC_TLSLD: howto manager. (line 756) 13629* BFD_RELOC_PPC_TOC16: howto manager. (line 678) 13630* BFD_RELOC_PPC_TPREL: howto manager. (line 762) 13631* BFD_RELOC_PPC_TPREL16: howto manager. (line 758) 13632* BFD_RELOC_PPC_TPREL16_HA: howto manager. (line 761) 13633* BFD_RELOC_PPC_TPREL16_HI: howto manager. (line 760) 13634* BFD_RELOC_PPC_TPREL16_LO: howto manager. (line 759) 13635* BFD_RELOC_PPC_VLE_HA16A: howto manager. (line 713) 13636* BFD_RELOC_PPC_VLE_HA16D: howto manager. (line 714) 13637* BFD_RELOC_PPC_VLE_HI16A: howto manager. (line 711) 13638* BFD_RELOC_PPC_VLE_HI16D: howto manager. (line 712) 13639* BFD_RELOC_PPC_VLE_LO16A: howto manager. (line 709) 13640* BFD_RELOC_PPC_VLE_LO16D: howto manager. (line 710) 13641* BFD_RELOC_PPC_VLE_REL15: howto manager. (line 707) 13642* BFD_RELOC_PPC_VLE_REL24: howto manager. (line 708) 13643* BFD_RELOC_PPC_VLE_REL8: howto manager. (line 706) 13644* BFD_RELOC_PPC_VLE_SDA21: howto manager. (line 715) 13645* BFD_RELOC_PPC_VLE_SDA21_LO: howto manager. (line 716) 13646* BFD_RELOC_PPC_VLE_SDAREL_HA16A: howto manager. (line 721) 13647* BFD_RELOC_PPC_VLE_SDAREL_HA16D: howto manager. (line 722) 13648* BFD_RELOC_PPC_VLE_SDAREL_HI16A: howto manager. (line 719) 13649* BFD_RELOC_PPC_VLE_SDAREL_HI16D: howto manager. (line 720) 13650* BFD_RELOC_PPC_VLE_SDAREL_LO16A: howto manager. (line 717) 13651* BFD_RELOC_PPC_VLE_SDAREL_LO16D: howto manager. (line 718) 13652* BFD_RELOC_RELC: howto manager. (line 2798) 13653* BFD_RELOC_RISCV_ADD16: howto manager. (line 2080) 13654* BFD_RELOC_RISCV_ADD32: howto manager. (line 2081) 13655* BFD_RELOC_RISCV_ADD64: howto manager. (line 2082) 13656* BFD_RELOC_RISCV_ADD8: howto manager. (line 2079) 13657* BFD_RELOC_RISCV_ALIGN: howto manager. (line 2097) 13658* BFD_RELOC_RISCV_CALL: howto manager. (line 2077) 13659* BFD_RELOC_RISCV_CALL_PLT: howto manager. (line 2078) 13660* BFD_RELOC_RISCV_CFA: howto manager. (line 2106) 13661* BFD_RELOC_RISCV_GOT_HI20: howto manager. (line 2087) 13662* BFD_RELOC_RISCV_GPREL12_I: howto manager. (line 2071) 13663* BFD_RELOC_RISCV_GPREL12_S: howto manager. (line 2072) 13664* BFD_RELOC_RISCV_GPREL_I: howto manager. (line 2101) 13665* BFD_RELOC_RISCV_GPREL_S: howto manager. (line 2102) 13666* BFD_RELOC_RISCV_HI20: howto manager. (line 2065) 13667* BFD_RELOC_RISCV_JMP: howto manager. (line 2090) 13668* BFD_RELOC_RISCV_LO12_I: howto manager. (line 2069) 13669* BFD_RELOC_RISCV_LO12_S: howto manager. (line 2070) 13670* BFD_RELOC_RISCV_PCREL_HI20: howto manager. (line 2066) 13671* BFD_RELOC_RISCV_PCREL_LO12_I: howto manager. (line 2067) 13672* BFD_RELOC_RISCV_PCREL_LO12_S: howto manager. (line 2068) 13673* BFD_RELOC_RISCV_RELAX: howto manager. (line 2105) 13674* BFD_RELOC_RISCV_RVC_BRANCH: howto manager. (line 2098) 13675* BFD_RELOC_RISCV_RVC_JUMP: howto manager. (line 2099) 13676* BFD_RELOC_RISCV_RVC_LUI: howto manager. (line 2100) 13677* BFD_RELOC_RISCV_SET16: howto manager. (line 2110) 13678* BFD_RELOC_RISCV_SET32: howto manager. (line 2111) 13679* BFD_RELOC_RISCV_SET6: howto manager. (line 2108) 13680* BFD_RELOC_RISCV_SET8: howto manager. (line 2109) 13681* BFD_RELOC_RISCV_SUB16: howto manager. (line 2084) 13682* BFD_RELOC_RISCV_SUB32: howto manager. (line 2085) 13683* BFD_RELOC_RISCV_SUB6: howto manager. (line 2107) 13684* BFD_RELOC_RISCV_SUB64: howto manager. (line 2086) 13685* BFD_RELOC_RISCV_SUB8: howto manager. (line 2083) 13686* BFD_RELOC_RISCV_TLS_DTPMOD32: howto manager. (line 2091) 13687* BFD_RELOC_RISCV_TLS_DTPMOD64: howto manager. (line 2093) 13688* BFD_RELOC_RISCV_TLS_DTPREL32: howto manager. (line 2092) 13689* BFD_RELOC_RISCV_TLS_DTPREL64: howto manager. (line 2094) 13690* BFD_RELOC_RISCV_TLS_GD_HI20: howto manager. (line 2089) 13691* BFD_RELOC_RISCV_TLS_GOT_HI20: howto manager. (line 2088) 13692* BFD_RELOC_RISCV_TLS_TPREL32: howto manager. (line 2095) 13693* BFD_RELOC_RISCV_TLS_TPREL64: howto manager. (line 2096) 13694* BFD_RELOC_RISCV_TPREL_ADD: howto manager. (line 2076) 13695* BFD_RELOC_RISCV_TPREL_HI20: howto manager. (line 2073) 13696* BFD_RELOC_RISCV_TPREL_I: howto manager. (line 2103) 13697* BFD_RELOC_RISCV_TPREL_LO12_I: howto manager. (line 2074) 13698* BFD_RELOC_RISCV_TPREL_LO12_S: howto manager. (line 2075) 13699* BFD_RELOC_RISCV_TPREL_S: howto manager. (line 2104) 13700* BFD_RELOC_RL78_16_OP: howto manager. (line 2118) 13701* BFD_RELOC_RL78_16U: howto manager. (line 2122) 13702* BFD_RELOC_RL78_24_OP: howto manager. (line 2119) 13703* BFD_RELOC_RL78_24U: howto manager. (line 2123) 13704* BFD_RELOC_RL78_32_OP: howto manager. (line 2120) 13705* BFD_RELOC_RL78_8U: howto manager. (line 2121) 13706* BFD_RELOC_RL78_ABS16: howto manager. (line 2135) 13707* BFD_RELOC_RL78_ABS16_REV: howto manager. (line 2136) 13708* BFD_RELOC_RL78_ABS16U: howto manager. (line 2139) 13709* BFD_RELOC_RL78_ABS16UL: howto manager. (line 2141) 13710* BFD_RELOC_RL78_ABS16UW: howto manager. (line 2140) 13711* BFD_RELOC_RL78_ABS32: howto manager. (line 2137) 13712* BFD_RELOC_RL78_ABS32_REV: howto manager. (line 2138) 13713* BFD_RELOC_RL78_ABS8: howto manager. (line 2134) 13714* BFD_RELOC_RL78_CODE: howto manager. (line 2146) 13715* BFD_RELOC_RL78_DIFF: howto manager. (line 2125) 13716* BFD_RELOC_RL78_DIR3U_PCREL: howto manager. (line 2124) 13717* BFD_RELOC_RL78_GPRELB: howto manager. (line 2126) 13718* BFD_RELOC_RL78_GPRELL: howto manager. (line 2128) 13719* BFD_RELOC_RL78_GPRELW: howto manager. (line 2127) 13720* BFD_RELOC_RL78_HI16: howto manager. (line 2143) 13721* BFD_RELOC_RL78_HI8: howto manager. (line 2144) 13722* BFD_RELOC_RL78_LO16: howto manager. (line 2145) 13723* BFD_RELOC_RL78_NEG16: howto manager. (line 2115) 13724* BFD_RELOC_RL78_NEG24: howto manager. (line 2116) 13725* BFD_RELOC_RL78_NEG32: howto manager. (line 2117) 13726* BFD_RELOC_RL78_NEG8: howto manager. (line 2114) 13727* BFD_RELOC_RL78_OP_AND: howto manager. (line 2132) 13728* BFD_RELOC_RL78_OP_NEG: howto manager. (line 2131) 13729* BFD_RELOC_RL78_OP_SHRA: howto manager. (line 2133) 13730* BFD_RELOC_RL78_OP_SUBTRACT: howto manager. (line 2130) 13731* BFD_RELOC_RL78_RELAX: howto manager. (line 2142) 13732* BFD_RELOC_RL78_SADDR: howto manager. (line 2147) 13733* BFD_RELOC_RL78_SYM: howto manager. (line 2129) 13734* BFD_RELOC_RVA: howto manager. (line 104) 13735* BFD_RELOC_RX_16_OP: howto manager. (line 2154) 13736* BFD_RELOC_RX_16U: howto manager. (line 2158) 13737* BFD_RELOC_RX_24_OP: howto manager. (line 2155) 13738* BFD_RELOC_RX_24U: howto manager. (line 2159) 13739* BFD_RELOC_RX_32_OP: howto manager. (line 2156) 13740* BFD_RELOC_RX_8U: howto manager. (line 2157) 13741* BFD_RELOC_RX_ABS16: howto manager. (line 2169) 13742* BFD_RELOC_RX_ABS16_REV: howto manager. (line 2170) 13743* BFD_RELOC_RX_ABS16U: howto manager. (line 2173) 13744* BFD_RELOC_RX_ABS16UL: howto manager. (line 2175) 13745* BFD_RELOC_RX_ABS16UW: howto manager. (line 2174) 13746* BFD_RELOC_RX_ABS32: howto manager. (line 2171) 13747* BFD_RELOC_RX_ABS32_REV: howto manager. (line 2172) 13748* BFD_RELOC_RX_ABS8: howto manager. (line 2168) 13749* BFD_RELOC_RX_DIFF: howto manager. (line 2161) 13750* BFD_RELOC_RX_DIR3U_PCREL: howto manager. (line 2160) 13751* BFD_RELOC_RX_GPRELB: howto manager. (line 2162) 13752* BFD_RELOC_RX_GPRELL: howto manager. (line 2164) 13753* BFD_RELOC_RX_GPRELW: howto manager. (line 2163) 13754* BFD_RELOC_RX_NEG16: howto manager. (line 2151) 13755* BFD_RELOC_RX_NEG24: howto manager. (line 2152) 13756* BFD_RELOC_RX_NEG32: howto manager. (line 2153) 13757* BFD_RELOC_RX_NEG8: howto manager. (line 2150) 13758* BFD_RELOC_RX_OP_NEG: howto manager. (line 2167) 13759* BFD_RELOC_RX_OP_SUBTRACT: howto manager. (line 2166) 13760* BFD_RELOC_RX_RELAX: howto manager. (line 2176) 13761* BFD_RELOC_RX_SYM: howto manager. (line 2165) 13762* BFD_RELOC_SCORE16_BRANCH: howto manager. (line 2319) 13763* BFD_RELOC_SCORE16_JMP: howto manager. (line 2316) 13764* BFD_RELOC_SCORE_BCMP: howto manager. (line 2322) 13765* BFD_RELOC_SCORE_BRANCH: howto manager. (line 2307) 13766* BFD_RELOC_SCORE_CALL15: howto manager. (line 2327) 13767* BFD_RELOC_SCORE_DUMMY2: howto manager. (line 2303) 13768* BFD_RELOC_SCORE_DUMMY_HI16: howto manager. (line 2328) 13769* BFD_RELOC_SCORE_GOT15: howto manager. (line 2325) 13770* BFD_RELOC_SCORE_GOT_LO16: howto manager. (line 2326) 13771* BFD_RELOC_SCORE_GPREL15: howto manager. (line 2300) 13772* BFD_RELOC_SCORE_IMM30: howto manager. (line 2310) 13773* BFD_RELOC_SCORE_IMM32: howto manager. (line 2313) 13774* BFD_RELOC_SCORE_JMP: howto manager. (line 2304) 13775* BFD_RELOC_SH_ALIGN: howto manager. (line 999) 13776* BFD_RELOC_SH_CODE: howto manager. (line 1000) 13777* BFD_RELOC_SH_COPY: howto manager. (line 1005) 13778* BFD_RELOC_SH_COPY64: howto manager. (line 1030) 13779* BFD_RELOC_SH_COUNT: howto manager. (line 998) 13780* BFD_RELOC_SH_DATA: howto manager. (line 1001) 13781* BFD_RELOC_SH_DISP12: howto manager. (line 981) 13782* BFD_RELOC_SH_DISP12BY2: howto manager. (line 982) 13783* BFD_RELOC_SH_DISP12BY4: howto manager. (line 983) 13784* BFD_RELOC_SH_DISP12BY8: howto manager. (line 984) 13785* BFD_RELOC_SH_DISP20: howto manager. (line 985) 13786* BFD_RELOC_SH_DISP20BY8: howto manager. (line 986) 13787* BFD_RELOC_SH_FUNCDESC: howto manager. (line 1073) 13788* BFD_RELOC_SH_GLOB_DAT: howto manager. (line 1006) 13789* BFD_RELOC_SH_GLOB_DAT64: howto manager. (line 1031) 13790* BFD_RELOC_SH_GOT10BY4: howto manager. (line 1034) 13791* BFD_RELOC_SH_GOT10BY8: howto manager. (line 1035) 13792* BFD_RELOC_SH_GOT20: howto manager. (line 1067) 13793* BFD_RELOC_SH_GOT_HI16: howto manager. (line 1013) 13794* BFD_RELOC_SH_GOT_LOW16: howto manager. (line 1010) 13795* BFD_RELOC_SH_GOT_MEDHI16: howto manager. (line 1012) 13796* BFD_RELOC_SH_GOT_MEDLOW16: howto manager. (line 1011) 13797* BFD_RELOC_SH_GOTFUNCDESC: howto manager. (line 1069) 13798* BFD_RELOC_SH_GOTFUNCDESC20: howto manager. (line 1070) 13799* BFD_RELOC_SH_GOTOFF20: howto manager. (line 1068) 13800* BFD_RELOC_SH_GOTOFF_HI16: howto manager. (line 1025) 13801* BFD_RELOC_SH_GOTOFF_LOW16: howto manager. (line 1022) 13802* BFD_RELOC_SH_GOTOFF_MEDHI16: howto manager. (line 1024) 13803* BFD_RELOC_SH_GOTOFF_MEDLOW16: howto manager. (line 1023) 13804* BFD_RELOC_SH_GOTOFFFUNCDESC: howto manager. (line 1071) 13805* BFD_RELOC_SH_GOTOFFFUNCDESC20: howto manager. (line 1072) 13806* BFD_RELOC_SH_GOTPC: howto manager. (line 1009) 13807* BFD_RELOC_SH_GOTPC_HI16: howto manager. (line 1029) 13808* BFD_RELOC_SH_GOTPC_LOW16: howto manager. (line 1026) 13809* BFD_RELOC_SH_GOTPC_MEDHI16: howto manager. (line 1028) 13810* BFD_RELOC_SH_GOTPC_MEDLOW16: howto manager. (line 1027) 13811* BFD_RELOC_SH_GOTPLT10BY4: howto manager. (line 1036) 13812* BFD_RELOC_SH_GOTPLT10BY8: howto manager. (line 1037) 13813* BFD_RELOC_SH_GOTPLT32: howto manager. (line 1038) 13814* BFD_RELOC_SH_GOTPLT_HI16: howto manager. (line 1017) 13815* BFD_RELOC_SH_GOTPLT_LOW16: howto manager. (line 1014) 13816* BFD_RELOC_SH_GOTPLT_MEDHI16: howto manager. (line 1016) 13817* BFD_RELOC_SH_GOTPLT_MEDLOW16: howto manager. (line 1015) 13818* BFD_RELOC_SH_IMM3: howto manager. (line 979) 13819* BFD_RELOC_SH_IMM3U: howto manager. (line 980) 13820* BFD_RELOC_SH_IMM4: howto manager. (line 987) 13821* BFD_RELOC_SH_IMM4BY2: howto manager. (line 988) 13822* BFD_RELOC_SH_IMM4BY4: howto manager. (line 989) 13823* BFD_RELOC_SH_IMM8: howto manager. (line 990) 13824* BFD_RELOC_SH_IMM8BY2: howto manager. (line 991) 13825* BFD_RELOC_SH_IMM8BY4: howto manager. (line 992) 13826* BFD_RELOC_SH_IMM_HI16: howto manager. (line 1056) 13827* BFD_RELOC_SH_IMM_HI16_PCREL: howto manager. (line 1057) 13828* BFD_RELOC_SH_IMM_LOW16: howto manager. (line 1050) 13829* BFD_RELOC_SH_IMM_LOW16_PCREL: howto manager. (line 1051) 13830* BFD_RELOC_SH_IMM_MEDHI16: howto manager. (line 1054) 13831* BFD_RELOC_SH_IMM_MEDHI16_PCREL: howto manager. (line 1055) 13832* BFD_RELOC_SH_IMM_MEDLOW16: howto manager. (line 1052) 13833* BFD_RELOC_SH_IMM_MEDLOW16_PCREL: howto manager. (line 1053) 13834* BFD_RELOC_SH_IMMS10: howto manager. (line 1044) 13835* BFD_RELOC_SH_IMMS10BY2: howto manager. (line 1045) 13836* BFD_RELOC_SH_IMMS10BY4: howto manager. (line 1046) 13837* BFD_RELOC_SH_IMMS10BY8: howto manager. (line 1047) 13838* BFD_RELOC_SH_IMMS16: howto manager. (line 1048) 13839* BFD_RELOC_SH_IMMS6: howto manager. (line 1041) 13840* BFD_RELOC_SH_IMMS6BY32: howto manager. (line 1042) 13841* BFD_RELOC_SH_IMMU16: howto manager. (line 1049) 13842* BFD_RELOC_SH_IMMU5: howto manager. (line 1040) 13843* BFD_RELOC_SH_IMMU6: howto manager. (line 1043) 13844* BFD_RELOC_SH_JMP_SLOT: howto manager. (line 1007) 13845* BFD_RELOC_SH_JMP_SLOT64: howto manager. (line 1032) 13846* BFD_RELOC_SH_LABEL: howto manager. (line 1002) 13847* BFD_RELOC_SH_LOOP_END: howto manager. (line 1004) 13848* BFD_RELOC_SH_LOOP_START: howto manager. (line 1003) 13849* BFD_RELOC_SH_PCDISP12BY2: howto manager. (line 978) 13850* BFD_RELOC_SH_PCDISP8BY2: howto manager. (line 977) 13851* BFD_RELOC_SH_PCRELIMM8BY2: howto manager. (line 993) 13852* BFD_RELOC_SH_PCRELIMM8BY4: howto manager. (line 994) 13853* BFD_RELOC_SH_PLT_HI16: howto manager. (line 1021) 13854* BFD_RELOC_SH_PLT_LOW16: howto manager. (line 1018) 13855* BFD_RELOC_SH_PLT_MEDHI16: howto manager. (line 1020) 13856* BFD_RELOC_SH_PLT_MEDLOW16: howto manager. (line 1019) 13857* BFD_RELOC_SH_PT_16: howto manager. (line 1058) 13858* BFD_RELOC_SH_RELATIVE: howto manager. (line 1008) 13859* BFD_RELOC_SH_RELATIVE64: howto manager. (line 1033) 13860* BFD_RELOC_SH_SHMEDIA_CODE: howto manager. (line 1039) 13861* BFD_RELOC_SH_SWITCH16: howto manager. (line 995) 13862* BFD_RELOC_SH_SWITCH32: howto manager. (line 996) 13863* BFD_RELOC_SH_TLS_DTPMOD32: howto manager. (line 1064) 13864* BFD_RELOC_SH_TLS_DTPOFF32: howto manager. (line 1065) 13865* BFD_RELOC_SH_TLS_GD_32: howto manager. (line 1059) 13866* BFD_RELOC_SH_TLS_IE_32: howto manager. (line 1062) 13867* BFD_RELOC_SH_TLS_LD_32: howto manager. (line 1060) 13868* BFD_RELOC_SH_TLS_LDO_32: howto manager. (line 1061) 13869* BFD_RELOC_SH_TLS_LE_32: howto manager. (line 1063) 13870* BFD_RELOC_SH_TLS_TPOFF32: howto manager. (line 1066) 13871* BFD_RELOC_SH_USES: howto manager. (line 997) 13872* BFD_RELOC_SIZE32: howto manager. (line 74) 13873* BFD_RELOC_SIZE64: howto manager. (line 75) 13874* BFD_RELOC_SPARC13: howto manager. (line 138) 13875* BFD_RELOC_SPARC22: howto manager. (line 137) 13876* BFD_RELOC_SPARC_10: howto manager. (line 167) 13877* BFD_RELOC_SPARC_11: howto manager. (line 168) 13878* BFD_RELOC_SPARC_5: howto manager. (line 180) 13879* BFD_RELOC_SPARC_6: howto manager. (line 179) 13880* BFD_RELOC_SPARC_64: howto manager. (line 166) 13881* BFD_RELOC_SPARC_7: howto manager. (line 178) 13882* BFD_RELOC_SPARC_BASE13: howto manager. (line 162) 13883* BFD_RELOC_SPARC_BASE22: howto manager. (line 163) 13884* BFD_RELOC_SPARC_COPY: howto manager. (line 145) 13885* BFD_RELOC_SPARC_DISP64: howto manager. (line 181) 13886* BFD_RELOC_SPARC_GLOB_DAT: howto manager. (line 146) 13887* BFD_RELOC_SPARC_GOT10: howto manager. (line 139) 13888* BFD_RELOC_SPARC_GOT13: howto manager. (line 140) 13889* BFD_RELOC_SPARC_GOT22: howto manager. (line 141) 13890* BFD_RELOC_SPARC_GOTDATA_HIX22: howto manager. (line 152) 13891* BFD_RELOC_SPARC_GOTDATA_LOX10: howto manager. (line 153) 13892* BFD_RELOC_SPARC_GOTDATA_OP: howto manager. (line 156) 13893* BFD_RELOC_SPARC_GOTDATA_OP_HIX22: howto manager. (line 154) 13894* BFD_RELOC_SPARC_GOTDATA_OP_LOX10: howto manager. (line 155) 13895* BFD_RELOC_SPARC_H34: howto manager. (line 190) 13896* BFD_RELOC_SPARC_H44: howto manager. (line 186) 13897* BFD_RELOC_SPARC_HH22: howto manager. (line 170) 13898* BFD_RELOC_SPARC_HIX22: howto manager. (line 184) 13899* BFD_RELOC_SPARC_HM10: howto manager. (line 171) 13900* BFD_RELOC_SPARC_IRELATIVE: howto manager. (line 158) 13901* BFD_RELOC_SPARC_JMP_IREL: howto manager. (line 157) 13902* BFD_RELOC_SPARC_JMP_SLOT: howto manager. (line 147) 13903* BFD_RELOC_SPARC_L44: howto manager. (line 188) 13904* BFD_RELOC_SPARC_LM22: howto manager. (line 172) 13905* BFD_RELOC_SPARC_LOX10: howto manager. (line 185) 13906* BFD_RELOC_SPARC_M44: howto manager. (line 187) 13907* BFD_RELOC_SPARC_OLO10: howto manager. (line 169) 13908* BFD_RELOC_SPARC_PC10: howto manager. (line 142) 13909* BFD_RELOC_SPARC_PC22: howto manager. (line 143) 13910* BFD_RELOC_SPARC_PC_HH22: howto manager. (line 173) 13911* BFD_RELOC_SPARC_PC_HM10: howto manager. (line 174) 13912* BFD_RELOC_SPARC_PC_LM22: howto manager. (line 175) 13913* BFD_RELOC_SPARC_PLT32: howto manager. (line 182) 13914* BFD_RELOC_SPARC_PLT64: howto manager. (line 183) 13915* BFD_RELOC_SPARC_REGISTER: howto manager. (line 189) 13916* BFD_RELOC_SPARC_RELATIVE: howto manager. (line 148) 13917* BFD_RELOC_SPARC_REV32: howto manager. (line 196) 13918* BFD_RELOC_SPARC_SIZE32: howto manager. (line 191) 13919* BFD_RELOC_SPARC_SIZE64: howto manager. (line 192) 13920* BFD_RELOC_SPARC_TLS_DTPMOD32: howto manager. (line 217) 13921* BFD_RELOC_SPARC_TLS_DTPMOD64: howto manager. (line 218) 13922* BFD_RELOC_SPARC_TLS_DTPOFF32: howto manager. (line 219) 13923* BFD_RELOC_SPARC_TLS_DTPOFF64: howto manager. (line 220) 13924* BFD_RELOC_SPARC_TLS_GD_ADD: howto manager. (line 201) 13925* BFD_RELOC_SPARC_TLS_GD_CALL: howto manager. (line 202) 13926* BFD_RELOC_SPARC_TLS_GD_HI22: howto manager. (line 199) 13927* BFD_RELOC_SPARC_TLS_GD_LO10: howto manager. (line 200) 13928* BFD_RELOC_SPARC_TLS_IE_ADD: howto manager. (line 214) 13929* BFD_RELOC_SPARC_TLS_IE_HI22: howto manager. (line 210) 13930* BFD_RELOC_SPARC_TLS_IE_LD: howto manager. (line 212) 13931* BFD_RELOC_SPARC_TLS_IE_LDX: howto manager. (line 213) 13932* BFD_RELOC_SPARC_TLS_IE_LO10: howto manager. (line 211) 13933* BFD_RELOC_SPARC_TLS_LDM_ADD: howto manager. (line 205) 13934* BFD_RELOC_SPARC_TLS_LDM_CALL: howto manager. (line 206) 13935* BFD_RELOC_SPARC_TLS_LDM_HI22: howto manager. (line 203) 13936* BFD_RELOC_SPARC_TLS_LDM_LO10: howto manager. (line 204) 13937* BFD_RELOC_SPARC_TLS_LDO_ADD: howto manager. (line 209) 13938* BFD_RELOC_SPARC_TLS_LDO_HIX22: howto manager. (line 207) 13939* BFD_RELOC_SPARC_TLS_LDO_LOX10: howto manager. (line 208) 13940* BFD_RELOC_SPARC_TLS_LE_HIX22: howto manager. (line 215) 13941* BFD_RELOC_SPARC_TLS_LE_LOX10: howto manager. (line 216) 13942* BFD_RELOC_SPARC_TLS_TPOFF32: howto manager. (line 221) 13943* BFD_RELOC_SPARC_TLS_TPOFF64: howto manager. (line 222) 13944* BFD_RELOC_SPARC_UA16: howto manager. (line 149) 13945* BFD_RELOC_SPARC_UA32: howto manager. (line 150) 13946* BFD_RELOC_SPARC_UA64: howto manager. (line 151) 13947* BFD_RELOC_SPARC_WDISP10: howto manager. (line 193) 13948* BFD_RELOC_SPARC_WDISP16: howto manager. (line 176) 13949* BFD_RELOC_SPARC_WDISP19: howto manager. (line 177) 13950* BFD_RELOC_SPARC_WDISP22: howto manager. (line 136) 13951* BFD_RELOC_SPARC_WPLT30: howto manager. (line 144) 13952* BFD_RELOC_SPU_ADD_PIC: howto manager. (line 239) 13953* BFD_RELOC_SPU_HI16: howto manager. (line 236) 13954* BFD_RELOC_SPU_IMM10: howto manager. (line 227) 13955* BFD_RELOC_SPU_IMM10W: howto manager. (line 228) 13956* BFD_RELOC_SPU_IMM16: howto manager. (line 229) 13957* BFD_RELOC_SPU_IMM16W: howto manager. (line 230) 13958* BFD_RELOC_SPU_IMM18: howto manager. (line 231) 13959* BFD_RELOC_SPU_IMM7: howto manager. (line 225) 13960* BFD_RELOC_SPU_IMM8: howto manager. (line 226) 13961* BFD_RELOC_SPU_LO16: howto manager. (line 235) 13962* BFD_RELOC_SPU_PCREL16: howto manager. (line 234) 13963* BFD_RELOC_SPU_PCREL9a: howto manager. (line 232) 13964* BFD_RELOC_SPU_PCREL9b: howto manager. (line 233) 13965* BFD_RELOC_SPU_PPU32: howto manager. (line 237) 13966* BFD_RELOC_SPU_PPU64: howto manager. (line 238) 13967* BFD_RELOC_THUMB_PCREL_BLX: howto manager. (line 820) 13968* BFD_RELOC_THUMB_PCREL_BRANCH12: howto manager. (line 834) 13969* BFD_RELOC_THUMB_PCREL_BRANCH20: howto manager. (line 835) 13970* BFD_RELOC_THUMB_PCREL_BRANCH23: howto manager. (line 836) 13971* BFD_RELOC_THUMB_PCREL_BRANCH25: howto manager. (line 837) 13972* BFD_RELOC_THUMB_PCREL_BRANCH7: howto manager. (line 832) 13973* BFD_RELOC_THUMB_PCREL_BRANCH9: howto manager. (line 833) 13974* BFD_RELOC_TIC30_LDP: howto manager. (line 1718) 13975* BFD_RELOC_TIC54X_16_OF_23: howto manager. (line 1736) 13976* BFD_RELOC_TIC54X_23: howto manager. (line 1733) 13977* BFD_RELOC_TIC54X_MS7_OF_23: howto manager. (line 1741) 13978* BFD_RELOC_TIC54X_PARTLS7: howto manager. (line 1723) 13979* BFD_RELOC_TIC54X_PARTMS9: howto manager. (line 1728) 13980* BFD_RELOC_TILEGX_BROFF_X1: howto manager. (line 3655) 13981* BFD_RELOC_TILEGX_COPY: howto manager. (line 3651) 13982* BFD_RELOC_TILEGX_DEST_IMM8_X1: howto manager. (line 3662) 13983* BFD_RELOC_TILEGX_GLOB_DAT: howto manager. (line 3652) 13984* BFD_RELOC_TILEGX_HW0: howto manager. (line 3644) 13985* BFD_RELOC_TILEGX_HW0_LAST: howto manager. (line 3648) 13986* BFD_RELOC_TILEGX_HW1: howto manager. (line 3645) 13987* BFD_RELOC_TILEGX_HW1_LAST: howto manager. (line 3649) 13988* BFD_RELOC_TILEGX_HW2: howto manager. (line 3646) 13989* BFD_RELOC_TILEGX_HW2_LAST: howto manager. (line 3650) 13990* BFD_RELOC_TILEGX_HW3: howto manager. (line 3647) 13991* BFD_RELOC_TILEGX_IMM16_X0_HW0: howto manager. (line 3671) 13992* BFD_RELOC_TILEGX_IMM16_X0_HW0_GOT: howto manager. (line 3699) 13993* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST: howto manager. (line 3679) 13994* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_GOT: howto manager. (line 3707) 13995* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_PCREL: howto manager. (line 3693) 13996* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_PLT_PCREL: howto manager. 13997 (line 3727) 13998* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_GD: howto manager. (line 3721) 13999* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_IE: howto manager. (line 3733) 14000* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_LE: howto manager. (line 3717) 14001* BFD_RELOC_TILEGX_IMM16_X0_HW0_PCREL: howto manager. (line 3685) 14002* BFD_RELOC_TILEGX_IMM16_X0_HW0_PLT_PCREL: howto manager. (line 3701) 14003* BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_GD: howto manager. (line 3713) 14004* BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_IE: howto manager. (line 3725) 14005* BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_LE: howto manager. (line 3715) 14006* BFD_RELOC_TILEGX_IMM16_X0_HW1: howto manager. (line 3673) 14007* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST: howto manager. (line 3681) 14008* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_GOT: howto manager. (line 3709) 14009* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_PCREL: howto manager. (line 3695) 14010* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_PLT_PCREL: howto manager. 14011 (line 3729) 14012* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_GD: howto manager. (line 3723) 14013* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_IE: howto manager. (line 3735) 14014* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_LE: howto manager. (line 3719) 14015* BFD_RELOC_TILEGX_IMM16_X0_HW1_PCREL: howto manager. (line 3687) 14016* BFD_RELOC_TILEGX_IMM16_X0_HW1_PLT_PCREL: howto manager. (line 3703) 14017* BFD_RELOC_TILEGX_IMM16_X0_HW2: howto manager. (line 3675) 14018* BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST: howto manager. (line 3683) 14019* BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_PCREL: howto manager. (line 3697) 14020* BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_PLT_PCREL: howto manager. 14021 (line 3731) 14022* BFD_RELOC_TILEGX_IMM16_X0_HW2_PCREL: howto manager. (line 3689) 14023* BFD_RELOC_TILEGX_IMM16_X0_HW2_PLT_PCREL: howto manager. (line 3705) 14024* BFD_RELOC_TILEGX_IMM16_X0_HW3: howto manager. (line 3677) 14025* BFD_RELOC_TILEGX_IMM16_X0_HW3_PCREL: howto manager. (line 3691) 14026* BFD_RELOC_TILEGX_IMM16_X0_HW3_PLT_PCREL: howto manager. (line 3711) 14027* BFD_RELOC_TILEGX_IMM16_X1_HW0: howto manager. (line 3672) 14028* BFD_RELOC_TILEGX_IMM16_X1_HW0_GOT: howto manager. (line 3700) 14029* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST: howto manager. (line 3680) 14030* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_GOT: howto manager. (line 3708) 14031* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_PCREL: howto manager. (line 3694) 14032* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_PLT_PCREL: howto manager. 14033 (line 3728) 14034* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_GD: howto manager. (line 3722) 14035* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_IE: howto manager. (line 3734) 14036* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_LE: howto manager. (line 3718) 14037* BFD_RELOC_TILEGX_IMM16_X1_HW0_PCREL: howto manager. (line 3686) 14038* BFD_RELOC_TILEGX_IMM16_X1_HW0_PLT_PCREL: howto manager. (line 3702) 14039* BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_GD: howto manager. (line 3714) 14040* BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_IE: howto manager. (line 3726) 14041* BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_LE: howto manager. (line 3716) 14042* BFD_RELOC_TILEGX_IMM16_X1_HW1: howto manager. (line 3674) 14043* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST: howto manager. (line 3682) 14044* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_GOT: howto manager. (line 3710) 14045* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_PCREL: howto manager. (line 3696) 14046* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_PLT_PCREL: howto manager. 14047 (line 3730) 14048* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_GD: howto manager. (line 3724) 14049* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_IE: howto manager. (line 3736) 14050* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_LE: howto manager. (line 3720) 14051* BFD_RELOC_TILEGX_IMM16_X1_HW1_PCREL: howto manager. (line 3688) 14052* BFD_RELOC_TILEGX_IMM16_X1_HW1_PLT_PCREL: howto manager. (line 3704) 14053* BFD_RELOC_TILEGX_IMM16_X1_HW2: howto manager. (line 3676) 14054* BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST: howto manager. (line 3684) 14055* BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PCREL: howto manager. (line 3698) 14056* BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PLT_PCREL: howto manager. 14057 (line 3732) 14058* BFD_RELOC_TILEGX_IMM16_X1_HW2_PCREL: howto manager. (line 3690) 14059* BFD_RELOC_TILEGX_IMM16_X1_HW2_PLT_PCREL: howto manager. (line 3706) 14060* BFD_RELOC_TILEGX_IMM16_X1_HW3: howto manager. (line 3678) 14061* BFD_RELOC_TILEGX_IMM16_X1_HW3_PCREL: howto manager. (line 3692) 14062* BFD_RELOC_TILEGX_IMM16_X1_HW3_PLT_PCREL: howto manager. (line 3712) 14063* BFD_RELOC_TILEGX_IMM8_X0: howto manager. (line 3658) 14064* BFD_RELOC_TILEGX_IMM8_X0_TLS_ADD: howto manager. (line 3749) 14065* BFD_RELOC_TILEGX_IMM8_X0_TLS_GD_ADD: howto manager. (line 3744) 14066* BFD_RELOC_TILEGX_IMM8_X1: howto manager. (line 3660) 14067* BFD_RELOC_TILEGX_IMM8_X1_TLS_ADD: howto manager. (line 3750) 14068* BFD_RELOC_TILEGX_IMM8_X1_TLS_GD_ADD: howto manager. (line 3745) 14069* BFD_RELOC_TILEGX_IMM8_Y0: howto manager. (line 3659) 14070* BFD_RELOC_TILEGX_IMM8_Y0_TLS_ADD: howto manager. (line 3751) 14071* BFD_RELOC_TILEGX_IMM8_Y0_TLS_GD_ADD: howto manager. (line 3746) 14072* BFD_RELOC_TILEGX_IMM8_Y1: howto manager. (line 3661) 14073* BFD_RELOC_TILEGX_IMM8_Y1_TLS_ADD: howto manager. (line 3752) 14074* BFD_RELOC_TILEGX_IMM8_Y1_TLS_GD_ADD: howto manager. (line 3747) 14075* BFD_RELOC_TILEGX_JMP_SLOT: howto manager. (line 3653) 14076* BFD_RELOC_TILEGX_JUMPOFF_X1: howto manager. (line 3656) 14077* BFD_RELOC_TILEGX_JUMPOFF_X1_PLT: howto manager. (line 3657) 14078* BFD_RELOC_TILEGX_MF_IMM14_X1: howto manager. (line 3664) 14079* BFD_RELOC_TILEGX_MMEND_X0: howto manager. (line 3666) 14080* BFD_RELOC_TILEGX_MMSTART_X0: howto manager. (line 3665) 14081* BFD_RELOC_TILEGX_MT_IMM14_X1: howto manager. (line 3663) 14082* BFD_RELOC_TILEGX_RELATIVE: howto manager. (line 3654) 14083* BFD_RELOC_TILEGX_SHAMT_X0: howto manager. (line 3667) 14084* BFD_RELOC_TILEGX_SHAMT_X1: howto manager. (line 3668) 14085* BFD_RELOC_TILEGX_SHAMT_Y0: howto manager. (line 3669) 14086* BFD_RELOC_TILEGX_SHAMT_Y1: howto manager. (line 3670) 14087* BFD_RELOC_TILEGX_TLS_DTPMOD32: howto manager. (line 3740) 14088* BFD_RELOC_TILEGX_TLS_DTPMOD64: howto manager. (line 3737) 14089* BFD_RELOC_TILEGX_TLS_DTPOFF32: howto manager. (line 3741) 14090* BFD_RELOC_TILEGX_TLS_DTPOFF64: howto manager. (line 3738) 14091* BFD_RELOC_TILEGX_TLS_GD_CALL: howto manager. (line 3743) 14092* BFD_RELOC_TILEGX_TLS_IE_LOAD: howto manager. (line 3748) 14093* BFD_RELOC_TILEGX_TLS_TPOFF32: howto manager. (line 3742) 14094* BFD_RELOC_TILEGX_TLS_TPOFF64: howto manager. (line 3739) 14095* BFD_RELOC_TILEPRO_BROFF_X1: howto manager. (line 3567) 14096* BFD_RELOC_TILEPRO_COPY: howto manager. (line 3563) 14097* BFD_RELOC_TILEPRO_DEST_IMM8_X1: howto manager. (line 3574) 14098* BFD_RELOC_TILEPRO_GLOB_DAT: howto manager. (line 3564) 14099* BFD_RELOC_TILEPRO_IMM16_X0: howto manager. (line 3577) 14100* BFD_RELOC_TILEPRO_IMM16_X0_GOT: howto manager. (line 3593) 14101* BFD_RELOC_TILEPRO_IMM16_X0_GOT_HA: howto manager. (line 3599) 14102* BFD_RELOC_TILEPRO_IMM16_X0_GOT_HI: howto manager. (line 3597) 14103* BFD_RELOC_TILEPRO_IMM16_X0_GOT_LO: howto manager. (line 3595) 14104* BFD_RELOC_TILEPRO_IMM16_X0_HA: howto manager. (line 3583) 14105* BFD_RELOC_TILEPRO_IMM16_X0_HA_PCREL: howto manager. (line 3591) 14106* BFD_RELOC_TILEPRO_IMM16_X0_HI: howto manager. (line 3581) 14107* BFD_RELOC_TILEPRO_IMM16_X0_HI_PCREL: howto manager. (line 3589) 14108* BFD_RELOC_TILEPRO_IMM16_X0_LO: howto manager. (line 3579) 14109* BFD_RELOC_TILEPRO_IMM16_X0_LO_PCREL: howto manager. (line 3587) 14110* BFD_RELOC_TILEPRO_IMM16_X0_PCREL: howto manager. (line 3585) 14111* BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD: howto manager. (line 3615) 14112* BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HA: howto manager. (line 3621) 14113* BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HI: howto manager. (line 3619) 14114* BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_LO: howto manager. (line 3617) 14115* BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE: howto manager. (line 3623) 14116* BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HA: howto manager. (line 3629) 14117* BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HI: howto manager. (line 3627) 14118* BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_LO: howto manager. (line 3625) 14119* BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE: howto manager. (line 3634) 14120* BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HA: howto manager. (line 3640) 14121* BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HI: howto manager. (line 3638) 14122* BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_LO: howto manager. (line 3636) 14123* BFD_RELOC_TILEPRO_IMM16_X1: howto manager. (line 3578) 14124* BFD_RELOC_TILEPRO_IMM16_X1_GOT: howto manager. (line 3594) 14125* BFD_RELOC_TILEPRO_IMM16_X1_GOT_HA: howto manager. (line 3600) 14126* BFD_RELOC_TILEPRO_IMM16_X1_GOT_HI: howto manager. (line 3598) 14127* BFD_RELOC_TILEPRO_IMM16_X1_GOT_LO: howto manager. (line 3596) 14128* BFD_RELOC_TILEPRO_IMM16_X1_HA: howto manager. (line 3584) 14129* BFD_RELOC_TILEPRO_IMM16_X1_HA_PCREL: howto manager. (line 3592) 14130* BFD_RELOC_TILEPRO_IMM16_X1_HI: howto manager. (line 3582) 14131* BFD_RELOC_TILEPRO_IMM16_X1_HI_PCREL: howto manager. (line 3590) 14132* BFD_RELOC_TILEPRO_IMM16_X1_LO: howto manager. (line 3580) 14133* BFD_RELOC_TILEPRO_IMM16_X1_LO_PCREL: howto manager. (line 3588) 14134* BFD_RELOC_TILEPRO_IMM16_X1_PCREL: howto manager. (line 3586) 14135* BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD: howto manager. (line 3616) 14136* BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HA: howto manager. (line 3622) 14137* BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HI: howto manager. (line 3620) 14138* BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_LO: howto manager. (line 3618) 14139* BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE: howto manager. (line 3624) 14140* BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HA: howto manager. (line 3630) 14141* BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HI: howto manager. (line 3628) 14142* BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_LO: howto manager. (line 3626) 14143* BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE: howto manager. (line 3635) 14144* BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HA: howto manager. (line 3641) 14145* BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HI: howto manager. (line 3639) 14146* BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_LO: howto manager. (line 3637) 14147* BFD_RELOC_TILEPRO_IMM8_X0: howto manager. (line 3570) 14148* BFD_RELOC_TILEPRO_IMM8_X0_TLS_GD_ADD: howto manager. (line 3610) 14149* BFD_RELOC_TILEPRO_IMM8_X1: howto manager. (line 3572) 14150* BFD_RELOC_TILEPRO_IMM8_X1_TLS_GD_ADD: howto manager. (line 3611) 14151* BFD_RELOC_TILEPRO_IMM8_Y0: howto manager. (line 3571) 14152* BFD_RELOC_TILEPRO_IMM8_Y0_TLS_GD_ADD: howto manager. (line 3612) 14153* BFD_RELOC_TILEPRO_IMM8_Y1: howto manager. (line 3573) 14154* BFD_RELOC_TILEPRO_IMM8_Y1_TLS_GD_ADD: howto manager. (line 3613) 14155* BFD_RELOC_TILEPRO_JMP_SLOT: howto manager. (line 3565) 14156* BFD_RELOC_TILEPRO_JOFFLONG_X1: howto manager. (line 3568) 14157* BFD_RELOC_TILEPRO_JOFFLONG_X1_PLT: howto manager. (line 3569) 14158* BFD_RELOC_TILEPRO_MF_IMM15_X1: howto manager. (line 3576) 14159* BFD_RELOC_TILEPRO_MMEND_X0: howto manager. (line 3602) 14160* BFD_RELOC_TILEPRO_MMEND_X1: howto manager. (line 3604) 14161* BFD_RELOC_TILEPRO_MMSTART_X0: howto manager. (line 3601) 14162* BFD_RELOC_TILEPRO_MMSTART_X1: howto manager. (line 3603) 14163* BFD_RELOC_TILEPRO_MT_IMM15_X1: howto manager. (line 3575) 14164* BFD_RELOC_TILEPRO_RELATIVE: howto manager. (line 3566) 14165* BFD_RELOC_TILEPRO_SHAMT_X0: howto manager. (line 3605) 14166* BFD_RELOC_TILEPRO_SHAMT_X1: howto manager. (line 3606) 14167* BFD_RELOC_TILEPRO_SHAMT_Y0: howto manager. (line 3607) 14168* BFD_RELOC_TILEPRO_SHAMT_Y1: howto manager. (line 3608) 14169* BFD_RELOC_TILEPRO_TLS_DTPMOD32: howto manager. (line 3631) 14170* BFD_RELOC_TILEPRO_TLS_DTPOFF32: howto manager. (line 3632) 14171* BFD_RELOC_TILEPRO_TLS_GD_CALL: howto manager. (line 3609) 14172* BFD_RELOC_TILEPRO_TLS_IE_LOAD: howto manager. (line 3614) 14173* BFD_RELOC_TILEPRO_TLS_TPOFF32: howto manager. (line 3633) 14174* bfd_reloc_type_lookup: howto manager. (line 3787) 14175* BFD_RELOC_V850_16_GOT: howto manager. (line 1682) 14176* BFD_RELOC_V850_16_GOTOFF: howto manager. (line 1706) 14177* BFD_RELOC_V850_16_PCREL: howto manager. (line 1652) 14178* BFD_RELOC_V850_16_S1: howto manager. (line 1670) 14179* BFD_RELOC_V850_16_SPLIT_OFFSET: howto manager. (line 1667) 14180* BFD_RELOC_V850_17_PCREL: howto manager. (line 1655) 14181* BFD_RELOC_V850_22_PCREL: howto manager. (line 1587) 14182* BFD_RELOC_V850_22_PLT_PCREL: howto manager. (line 1688) 14183* BFD_RELOC_V850_23: howto manager. (line 1658) 14184* BFD_RELOC_V850_32_ABS: howto manager. (line 1664) 14185* BFD_RELOC_V850_32_GOT: howto manager. (line 1685) 14186* BFD_RELOC_V850_32_GOTOFF: howto manager. (line 1709) 14187* BFD_RELOC_V850_32_GOTPCREL: howto manager. (line 1679) 14188* BFD_RELOC_V850_32_PCREL: howto manager. (line 1661) 14189* BFD_RELOC_V850_32_PLT_PCREL: howto manager. (line 1691) 14190* BFD_RELOC_V850_9_PCREL: howto manager. (line 1584) 14191* BFD_RELOC_V850_ALIGN: howto manager. (line 1645) 14192* BFD_RELOC_V850_CALLT_15_16_OFFSET: howto manager. (line 1676) 14193* BFD_RELOC_V850_CALLT_16_16_OFFSET: howto manager. (line 1636) 14194* BFD_RELOC_V850_CALLT_6_7_OFFSET: howto manager. (line 1633) 14195* BFD_RELOC_V850_CODE: howto manager. (line 1712) 14196* BFD_RELOC_V850_COPY: howto manager. (line 1694) 14197* BFD_RELOC_V850_DATA: howto manager. (line 1715) 14198* BFD_RELOC_V850_GLOB_DAT: howto manager. (line 1697) 14199* BFD_RELOC_V850_JMP_SLOT: howto manager. (line 1700) 14200* BFD_RELOC_V850_LO16_S1: howto manager. (line 1673) 14201* BFD_RELOC_V850_LO16_SPLIT_OFFSET: howto manager. (line 1648) 14202* BFD_RELOC_V850_LONGCALL: howto manager. (line 1639) 14203* BFD_RELOC_V850_LONGJUMP: howto manager. (line 1642) 14204* BFD_RELOC_V850_RELATIVE: howto manager. (line 1703) 14205* BFD_RELOC_V850_SDA_15_16_OFFSET: howto manager. (line 1593) 14206* BFD_RELOC_V850_SDA_16_16_OFFSET: howto manager. (line 1590) 14207* BFD_RELOC_V850_SDA_16_16_SPLIT_OFFSET: howto manager. (line 1625) 14208* BFD_RELOC_V850_TDA_16_16_OFFSET: howto manager. (line 1615) 14209* BFD_RELOC_V850_TDA_4_4_OFFSET: howto manager. (line 1622) 14210* BFD_RELOC_V850_TDA_4_5_OFFSET: howto manager. (line 1618) 14211* BFD_RELOC_V850_TDA_6_8_OFFSET: howto manager. (line 1604) 14212* BFD_RELOC_V850_TDA_7_7_OFFSET: howto manager. (line 1612) 14213* BFD_RELOC_V850_TDA_7_8_OFFSET: howto manager. (line 1608) 14214* BFD_RELOC_V850_ZDA_15_16_OFFSET: howto manager. (line 1600) 14215* BFD_RELOC_V850_ZDA_16_16_OFFSET: howto manager. (line 1597) 14216* BFD_RELOC_V850_ZDA_16_16_SPLIT_OFFSET: howto manager. (line 1629) 14217* BFD_RELOC_VAX_GLOB_DAT: howto manager. (line 2807) 14218* BFD_RELOC_VAX_JMP_SLOT: howto manager. (line 2808) 14219* BFD_RELOC_VAX_RELATIVE: howto manager. (line 2809) 14220* BFD_RELOC_VISIUM_HI16: howto manager. (line 3777) 14221* BFD_RELOC_VISIUM_HI16_PCREL: howto manager. (line 3781) 14222* BFD_RELOC_VISIUM_IM16: howto manager. (line 3779) 14223* BFD_RELOC_VISIUM_IM16_PCREL: howto manager. (line 3783) 14224* BFD_RELOC_VISIUM_LO16: howto manager. (line 3778) 14225* BFD_RELOC_VISIUM_LO16_PCREL: howto manager. (line 3782) 14226* BFD_RELOC_VISIUM_REL16: howto manager. (line 3780) 14227* BFD_RELOC_VPE4KMATH_DATA: howto manager. (line 2361) 14228* BFD_RELOC_VPE4KMATH_INSN: howto manager. (line 2362) 14229* BFD_RELOC_VTABLE_ENTRY: howto manager. (line 2366) 14230* BFD_RELOC_VTABLE_INHERIT: howto manager. (line 2365) 14231* BFD_RELOC_X86_64_32S: howto manager. (line 624) 14232* BFD_RELOC_X86_64_COPY: howto manager. (line 619) 14233* BFD_RELOC_X86_64_DTPMOD64: howto manager. (line 625) 14234* BFD_RELOC_X86_64_DTPOFF32: howto manager. (line 630) 14235* BFD_RELOC_X86_64_DTPOFF64: howto manager. (line 626) 14236* BFD_RELOC_X86_64_GLOB_DAT: howto manager. (line 620) 14237* BFD_RELOC_X86_64_GOT32: howto manager. (line 617) 14238* BFD_RELOC_X86_64_GOT64: howto manager. (line 635) 14239* BFD_RELOC_X86_64_GOTOFF64: howto manager. (line 633) 14240* BFD_RELOC_X86_64_GOTPC32: howto manager. (line 634) 14241* BFD_RELOC_X86_64_GOTPC32_TLSDESC: howto manager. (line 640) 14242* BFD_RELOC_X86_64_GOTPC64: howto manager. (line 637) 14243* BFD_RELOC_X86_64_GOTPCREL: howto manager. (line 623) 14244* BFD_RELOC_X86_64_GOTPCREL64: howto manager. (line 636) 14245* BFD_RELOC_X86_64_GOTPCRELX: howto manager. (line 646) 14246* BFD_RELOC_X86_64_GOTPLT64: howto manager. (line 638) 14247* BFD_RELOC_X86_64_GOTTPOFF: howto manager. (line 631) 14248* BFD_RELOC_X86_64_IRELATIVE: howto manager. (line 643) 14249* BFD_RELOC_X86_64_JUMP_SLOT: howto manager. (line 621) 14250* BFD_RELOC_X86_64_PC32_BND: howto manager. (line 644) 14251* BFD_RELOC_X86_64_PLT32: howto manager. (line 618) 14252* BFD_RELOC_X86_64_PLT32_BND: howto manager. (line 645) 14253* BFD_RELOC_X86_64_PLTOFF64: howto manager. (line 639) 14254* BFD_RELOC_X86_64_RELATIVE: howto manager. (line 622) 14255* BFD_RELOC_X86_64_REX_GOTPCRELX: howto manager. (line 647) 14256* BFD_RELOC_X86_64_TLSDESC: howto manager. (line 642) 14257* BFD_RELOC_X86_64_TLSDESC_CALL: howto manager. (line 641) 14258* BFD_RELOC_X86_64_TLSGD: howto manager. (line 628) 14259* BFD_RELOC_X86_64_TLSLD: howto manager. (line 629) 14260* BFD_RELOC_X86_64_TPOFF32: howto manager. (line 632) 14261* BFD_RELOC_X86_64_TPOFF64: howto manager. (line 627) 14262* BFD_RELOC_XC16X_PAG: howto manager. (line 2801) 14263* BFD_RELOC_XC16X_POF: howto manager. (line 2802) 14264* BFD_RELOC_XC16X_SEG: howto manager. (line 2803) 14265* BFD_RELOC_XC16X_SOF: howto manager. (line 2804) 14266* BFD_RELOC_XGATE_24: howto manager. (line 2524) 14267* BFD_RELOC_XGATE_GPAGE: howto manager. (line 2521) 14268* BFD_RELOC_XGATE_IMM3: howto manager. (line 2541) 14269* BFD_RELOC_XGATE_IMM4: howto manager. (line 2544) 14270* BFD_RELOC_XGATE_IMM5: howto manager. (line 2547) 14271* BFD_RELOC_XGATE_IMM8_HI: howto manager. (line 2537) 14272* BFD_RELOC_XGATE_IMM8_LO: howto manager. (line 2533) 14273* BFD_RELOC_XGATE_LO16: howto manager. (line 2517) 14274* BFD_RELOC_XGATE_PCREL_10: howto manager. (line 2530) 14275* BFD_RELOC_XGATE_PCREL_9: howto manager. (line 2527) 14276* BFD_RELOC_XGATE_RL_GROUP: howto manager. (line 2512) 14277* BFD_RELOC_XGATE_RL_JUMP: howto manager. (line 2508) 14278* BFD_RELOC_XSTORMY16_12: howto manager. (line 2793) 14279* BFD_RELOC_XSTORMY16_24: howto manager. (line 2794) 14280* BFD_RELOC_XSTORMY16_FPTR16: howto manager. (line 2795) 14281* BFD_RELOC_XSTORMY16_REL_12: howto manager. (line 2792) 14282* BFD_RELOC_XTENSA_ASM_EXPAND: howto manager. (line 2982) 14283* BFD_RELOC_XTENSA_ASM_SIMPLIFY: howto manager. (line 2987) 14284* BFD_RELOC_XTENSA_DIFF16: howto manager. (line 2929) 14285* BFD_RELOC_XTENSA_DIFF32: howto manager. (line 2930) 14286* BFD_RELOC_XTENSA_DIFF8: howto manager. (line 2928) 14287* BFD_RELOC_XTENSA_GLOB_DAT: howto manager. (line 2918) 14288* BFD_RELOC_XTENSA_JMP_SLOT: howto manager. (line 2919) 14289* BFD_RELOC_XTENSA_OP0: howto manager. (line 2976) 14290* BFD_RELOC_XTENSA_OP1: howto manager. (line 2977) 14291* BFD_RELOC_XTENSA_OP2: howto manager. (line 2978) 14292* BFD_RELOC_XTENSA_PLT: howto manager. (line 2923) 14293* BFD_RELOC_XTENSA_RELATIVE: howto manager. (line 2920) 14294* BFD_RELOC_XTENSA_RTLD: howto manager. (line 2913) 14295* BFD_RELOC_XTENSA_SLOT0_ALT: howto manager. (line 2958) 14296* BFD_RELOC_XTENSA_SLOT0_OP: howto manager. (line 2938) 14297* BFD_RELOC_XTENSA_SLOT10_ALT: howto manager. (line 2968) 14298* BFD_RELOC_XTENSA_SLOT10_OP: howto manager. (line 2948) 14299* BFD_RELOC_XTENSA_SLOT11_ALT: howto manager. (line 2969) 14300* BFD_RELOC_XTENSA_SLOT11_OP: howto manager. (line 2949) 14301* BFD_RELOC_XTENSA_SLOT12_ALT: howto manager. (line 2970) 14302* BFD_RELOC_XTENSA_SLOT12_OP: howto manager. (line 2950) 14303* BFD_RELOC_XTENSA_SLOT13_ALT: howto manager. (line 2971) 14304* BFD_RELOC_XTENSA_SLOT13_OP: howto manager. (line 2951) 14305* BFD_RELOC_XTENSA_SLOT14_ALT: howto manager. (line 2972) 14306* BFD_RELOC_XTENSA_SLOT14_OP: howto manager. (line 2952) 14307* BFD_RELOC_XTENSA_SLOT1_ALT: howto manager. (line 2959) 14308* BFD_RELOC_XTENSA_SLOT1_OP: howto manager. (line 2939) 14309* BFD_RELOC_XTENSA_SLOT2_ALT: howto manager. (line 2960) 14310* BFD_RELOC_XTENSA_SLOT2_OP: howto manager. (line 2940) 14311* BFD_RELOC_XTENSA_SLOT3_ALT: howto manager. (line 2961) 14312* BFD_RELOC_XTENSA_SLOT3_OP: howto manager. (line 2941) 14313* BFD_RELOC_XTENSA_SLOT4_ALT: howto manager. (line 2962) 14314* BFD_RELOC_XTENSA_SLOT4_OP: howto manager. (line 2942) 14315* BFD_RELOC_XTENSA_SLOT5_ALT: howto manager. (line 2963) 14316* BFD_RELOC_XTENSA_SLOT5_OP: howto manager. (line 2943) 14317* BFD_RELOC_XTENSA_SLOT6_ALT: howto manager. (line 2964) 14318* BFD_RELOC_XTENSA_SLOT6_OP: howto manager. (line 2944) 14319* BFD_RELOC_XTENSA_SLOT7_ALT: howto manager. (line 2965) 14320* BFD_RELOC_XTENSA_SLOT7_OP: howto manager. (line 2945) 14321* BFD_RELOC_XTENSA_SLOT8_ALT: howto manager. (line 2966) 14322* BFD_RELOC_XTENSA_SLOT8_OP: howto manager. (line 2946) 14323* BFD_RELOC_XTENSA_SLOT9_ALT: howto manager. (line 2967) 14324* BFD_RELOC_XTENSA_SLOT9_OP: howto manager. (line 2947) 14325* BFD_RELOC_XTENSA_TLS_ARG: howto manager. (line 2997) 14326* BFD_RELOC_XTENSA_TLS_CALL: howto manager. (line 2998) 14327* BFD_RELOC_XTENSA_TLS_DTPOFF: howto manager. (line 2994) 14328* BFD_RELOC_XTENSA_TLS_FUNC: howto manager. (line 2996) 14329* BFD_RELOC_XTENSA_TLS_TPOFF: howto manager. (line 2995) 14330* BFD_RELOC_XTENSA_TLSDESC_ARG: howto manager. (line 2993) 14331* BFD_RELOC_XTENSA_TLSDESC_FN: howto manager. (line 2992) 14332* BFD_RELOC_Z80_DISP8: howto manager. (line 3001) 14333* BFD_RELOC_Z8K_CALLR: howto manager. (line 3007) 14334* BFD_RELOC_Z8K_DISP7: howto manager. (line 3004) 14335* BFD_RELOC_Z8K_IMM4L: howto manager. (line 3010) 14336* bfd_rename_section: section prototypes. (line 179) 14337* bfd_scan_arch: Architectures. (line 546) 14338* bfd_scan_vma: Miscellaneous. (line 126) 14339* bfd_section_already_linked: Writing the symbol table. 14340 (line 55) 14341* bfd_section_list_clear: section prototypes. (line 8) 14342* bfd_sections_find_if: section prototypes. (line 209) 14343* bfd_set_arch_info: Architectures. (line 587) 14344* bfd_set_archive_head: Archives. (line 75) 14345* bfd_set_assert_handler: Error reporting. (line 133) 14346* bfd_set_default_target: bfd_target. (line 465) 14347* bfd_set_error: Error reporting. (line 57) 14348* bfd_set_error_handler: Error reporting. (line 99) 14349* bfd_set_error_program_name: Error reporting. (line 108) 14350* bfd_set_file_flags: Miscellaneous. (line 44) 14351* bfd_set_format: Formats. (line 68) 14352* bfd_set_gp_size: Miscellaneous. (line 116) 14353* bfd_set_private_flags: Miscellaneous. (line 176) 14354* bfd_set_reloc: Miscellaneous. (line 34) 14355* bfd_set_section_contents: section prototypes. (line 240) 14356* bfd_set_section_flags: section prototypes. (line 164) 14357* bfd_set_section_size: section prototypes. (line 226) 14358* bfd_set_start_address: Miscellaneous. (line 95) 14359* bfd_set_symtab: symbol handling functions. 14360 (line 60) 14361* bfd_symbol_info: symbol handling functions. 14362 (line 130) 14363* bfd_target_list: bfd_target. (line 517) 14364* bfd_update_compression_header: Miscellaneous. (line 352) 14365* bfd_write_bigendian_4byte_int: Internal. (line 13) 14366* bfd_zalloc: Opening and Closing. 14367 (line 257) 14368* bfd_zalloc2: Opening and Closing. 14369 (line 266) 14370* check_build_id_file: Opening and Closing. 14371 (line 451) 14372* coff_symbol_type: coff. (line 245) 14373* core_file_matches_executable_p: Core Files. (line 39) 14374* find_separate_debug_file: Opening and Closing. 14375 (line 332) 14376* generic_core_file_matches_executable_p: Core Files. (line 49) 14377* get_build_id: Opening and Closing. 14378 (line 421) 14379* get_build_id_name: Opening and Closing. 14380 (line 435) 14381* Hash tables: Hash Tables. (line 6) 14382* internal object-file format: Canonical format. (line 11) 14383* Linker: Linker Functions. (line 6) 14384* Other functions: Miscellaneous. (line 191) 14385* separate_alt_debug_file_exists: Opening and Closing. 14386 (line 323) 14387* separate_debug_file_exists: Opening and Closing. 14388 (line 314) 14389* struct bfd_iovec: Miscellaneous. (line 411) 14390* target vector (_bfd_final_link): Performing the Final Link. 14391 (line 6) 14392* target vector (_bfd_link_add_symbols): Adding Symbols to the Hash Table. 14393 (line 6) 14394* target vector (_bfd_link_hash_table_create): Creating a Linker Hash Table. 14395 (line 6) 14396* The HOWTO Macro: typedef arelent. (line 288) 14397* what is it?: Overview. (line 6) 14398 14399 14400 14401Tag Table: 14402Node: Top1058 14403Node: Overview1397 14404Node: History2448 14405Node: How It Works3394 14406Node: What BFD Version 2 Can Do4937 14407Node: BFD information loss6252 14408Node: Canonical format8784 14409Node: BFD front end13156 14410Node: typedef bfd13580 14411Node: Error reporting25883 14412Node: Miscellaneous30368 14413Node: Memory Usage48842 14414Node: Initialization50070 14415Node: Sections50529 14416Node: Section Input51012 14417Node: Section Output52377 14418Node: typedef asection54863 14419Node: section prototypes81613 14420Node: Symbols92210 14421Node: Reading Symbols93805 14422Node: Writing Symbols94912 14423Node: Mini Symbols96653 14424Node: typedef asymbol97627 14425Node: symbol handling functions103698 14426Node: Archives109040 14427Node: Formats113069 14428Node: Relocations116017 14429Node: typedef arelent116744 14430Node: howto manager132380 14431Node: Core Files255901 14432Node: Targets257939 14433Node: bfd_target259909 14434Node: Architectures283422 14435Node: Opening and Closing312771 14436Node: Internal329609 14437Node: File Caching335954 14438Node: Linker Functions337868 14439Node: Creating a Linker Hash Table339541 14440Node: Adding Symbols to the Hash Table341279 14441Node: Differing file formats342179 14442Node: Adding symbols from an object file343904 14443Node: Adding symbols from an archive346055 14444Node: Performing the Final Link348401 14445Node: Information provided by the linker349643 14446Node: Relocating the section contents350797 14447Node: Writing the symbol table352548 14448Node: Hash Tables358681 14449Node: Creating and Freeing a Hash Table359879 14450Node: Looking Up or Entering a String361129 14451Node: Traversing a Hash Table362382 14452Node: Deriving a New Hash Table Type363171 14453Node: Define the Derived Structures364237 14454Node: Write the Derived Creation Routine365318 14455Node: Write Other Derived Routines367942 14456Node: BFD back ends369257 14457Node: What to Put Where369527 14458Node: aout369707 14459Node: coff376045 14460Node: elf404878 14461Node: mmo405279 14462Node: File layout406152 14463Node: Symbol-table412079 14464Node: mmo section mapping415843 14465Node: GNU Free Documentation License419495 14466Node: BFD Index444578 14467 14468End Tag Table 14469