Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(193)

Side by Side Diff: bfd/mach-o.h

Issue 11969036: Merge GDB 7.5.1 (Closed) Base URL: http://git.chromium.org/native_client/nacl-gdb.git@master
Patch Set: Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « bfd/m68klinux.c ('k') | bfd/mach-o.c » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* Mach-O support for BFD. 1 /* Mach-O support for BFD.
2 Copyright 1999, 2000, 2001, 2002, 2003, 2005, 2007, 2008, 2009 2 Copyright 1999, 2000, 2001, 2002, 2003, 2005, 2007, 2008, 2009, 2011,
3 2012
3 Free Software Foundation, Inc. 4 Free Software Foundation, Inc.
4 5
5 This file is part of BFD, the Binary File Descriptor library. 6 This file is part of BFD, the Binary File Descriptor library.
6 7
7 This program is free software; you can redistribute it and/or modify 8 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by 9 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 3 of the License, or 10 the Free Software Foundation; either version 3 of the License, or
10 (at your option) any later version. 11 (at your option) any later version.
11 12
12 This program is distributed in the hope that it will be useful, 13 This program is distributed in the hope that it will be useful,
(...skipping 21 matching lines...) Expand all
34 unsigned long ncmds; 35 unsigned long ncmds;
35 unsigned long sizeofcmds; 36 unsigned long sizeofcmds;
36 unsigned long flags; 37 unsigned long flags;
37 unsigned int reserved; 38 unsigned int reserved;
38 /* Version 1: 32 bits, version 2: 64 bits. */ 39 /* Version 1: 32 bits, version 2: 64 bits. */
39 unsigned int version; 40 unsigned int version;
40 enum bfd_endian byteorder; 41 enum bfd_endian byteorder;
41 } 42 }
42 bfd_mach_o_header; 43 bfd_mach_o_header;
43 44
45 typedef struct bfd_mach_o_asymbol
46 {
47 /* The actual symbol which the rest of BFD works with. */
48 asymbol symbol;
49
50 /* Mach-O symbol fields. */
51 unsigned char n_type;
52 unsigned char n_sect;
53 unsigned short n_desc;
54 }
55 bfd_mach_o_asymbol;
56
44 #define BFD_MACH_O_SEGNAME_SIZE 16 57 #define BFD_MACH_O_SEGNAME_SIZE 16
45 #define BFD_MACH_O_SECTNAME_SIZE 16 58 #define BFD_MACH_O_SECTNAME_SIZE 16
46 59
47 typedef struct bfd_mach_o_section 60 typedef struct bfd_mach_o_section
48 { 61 {
49 /* Fields present in the file. */ 62 /* Fields present in the file. */
50 char sectname[BFD_MACH_O_SECTNAME_SIZE + 1]; /* Always NUL padded. */ 63 char sectname[BFD_MACH_O_SECTNAME_SIZE + 1]; /* Always NUL padded. */
51 char segname[BFD_MACH_O_SEGNAME_SIZE + 1]; 64 char segname[BFD_MACH_O_SEGNAME_SIZE + 1];
52 bfd_vma addr; 65 bfd_vma addr;
53 bfd_vma size; 66 bfd_vma size;
54 bfd_vma offset; 67 bfd_vma offset;
55 unsigned long align; 68 unsigned long align;
56 bfd_vma reloff; 69 bfd_vma reloff;
57 unsigned long nreloc; 70 unsigned long nreloc;
58 unsigned long flags; 71 unsigned long flags;
59 unsigned long reserved1; 72 unsigned long reserved1;
60 unsigned long reserved2; 73 unsigned long reserved2;
61 unsigned long reserved3; 74 unsigned long reserved3;
62 75
63 /* Corresponding bfd section. */ 76 /* Corresponding bfd section. */
64 asection *bfdsection; 77 asection *bfdsection;
65 78
79 /* An array holding the indirect symbols for this section.
80 NULL values indicate local symbols.
81 The number of symbols is determined from the section size and type. */
82
83 bfd_mach_o_asymbol **indirect_syms;
84
66 /* Simply linked list. */ 85 /* Simply linked list. */
67 struct bfd_mach_o_section *next; 86 struct bfd_mach_o_section *next;
68 } 87 }
69 bfd_mach_o_section; 88 bfd_mach_o_section;
70 89
71 typedef struct bfd_mach_o_segment_command 90 typedef struct bfd_mach_o_segment_command
72 { 91 {
73 char segname[16 + 1]; 92 char segname[BFD_MACH_O_SEGNAME_SIZE + 1];
74 bfd_vma vmaddr; 93 bfd_vma vmaddr;
75 bfd_vma vmsize; 94 bfd_vma vmsize;
76 bfd_vma fileoff; 95 bfd_vma fileoff;
77 unsigned long filesize; 96 unsigned long filesize;
78 unsigned long maxprot; /* Maximum permitted protection. */ 97 unsigned long maxprot; /* Maximum permitted protection. */
79 unsigned long initprot; /* Initial protection. */ 98 unsigned long initprot; /* Initial protection. */
80 unsigned long nsects; 99 unsigned long nsects;
81 unsigned long flags; 100 unsigned long flags;
82 101
83 /* Linked list of sections. */ 102 /* Linked list of sections. */
(...skipping 13 matching lines...) Expand all
97 bfd_vma r_address; 116 bfd_vma r_address;
98 bfd_vma r_value; 117 bfd_vma r_value;
99 unsigned int r_scattered : 1; 118 unsigned int r_scattered : 1;
100 unsigned int r_type : 4; 119 unsigned int r_type : 4;
101 unsigned int r_pcrel : 1; 120 unsigned int r_pcrel : 1;
102 unsigned int r_length : 2; 121 unsigned int r_length : 2;
103 unsigned int r_extern : 1; 122 unsigned int r_extern : 1;
104 } 123 }
105 bfd_mach_o_reloc_info; 124 bfd_mach_o_reloc_info;
106 125
107 typedef struct bfd_mach_o_asymbol 126 /* The symbol table is sorted like this:
108 { 127 (1) local.
109 /* The actual symbol which the rest of BFD works with. */ 128 » (otherwise in order of generation)
110 asymbol symbol; 129 (2) external defined
111 130 » (sorted by name)
112 /* Fields from Mach-O symbol. */ 131 (3) external undefined / common
113 unsigned char n_type; 132 » (sorted by name)
114 unsigned char n_sect; 133 */
115 unsigned short n_desc;
116 }
117 bfd_mach_o_asymbol;
118 134
119 typedef struct bfd_mach_o_symtab_command 135 typedef struct bfd_mach_o_symtab_command
120 { 136 {
121 unsigned int symoff; 137 unsigned int symoff;
122 unsigned int nsyms; 138 unsigned int nsyms;
123 unsigned int stroff; 139 unsigned int stroff;
124 unsigned int strsize; 140 unsigned int strsize;
125 bfd_mach_o_asymbol *symbols; 141 bfd_mach_o_asymbol *symbols;
126 char *strtab; 142 char *strtab;
127 } 143 }
(...skipping 303 matching lines...) Expand 10 before | Expand all | Expand 10 after
431 bfd_mach_o_linkedit_command; 447 bfd_mach_o_linkedit_command;
432 448
433 typedef struct bfd_mach_o_str_command 449 typedef struct bfd_mach_o_str_command
434 { 450 {
435 unsigned long stroff; 451 unsigned long stroff;
436 unsigned long str_len; 452 unsigned long str_len;
437 char *str; 453 char *str;
438 } 454 }
439 bfd_mach_o_str_command; 455 bfd_mach_o_str_command;
440 456
457 typedef struct bfd_mach_o_fvmlib_command
458 {
459 unsigned int name_offset;
460 unsigned int name_len;
461 char *name_str;
462 unsigned int minor_version;
463 unsigned int header_addr;
464 }
465 bfd_mach_o_fvmlib_command;
466
441 typedef struct bfd_mach_o_dyld_info_command 467 typedef struct bfd_mach_o_dyld_info_command
442 { 468 {
443 /* File offset and size to rebase info. */ 469 /* File offset and size to rebase info. */
444 unsigned int rebase_off; 470 unsigned int rebase_off;
445 unsigned int rebase_size; 471 unsigned int rebase_size;
446 472
447 /* File offset and size of binding info. */ 473 /* File offset and size of binding info. */
448 unsigned int bind_off; 474 unsigned int bind_off;
449 unsigned int bind_size; 475 unsigned int bind_size;
450 476
(...skipping 13 matching lines...) Expand all
464 490
465 typedef struct bfd_mach_o_version_min_command 491 typedef struct bfd_mach_o_version_min_command
466 { 492 {
467 unsigned char rel; 493 unsigned char rel;
468 unsigned char maj; 494 unsigned char maj;
469 unsigned char min; 495 unsigned char min;
470 unsigned int reserved; 496 unsigned int reserved;
471 } 497 }
472 bfd_mach_o_version_min_command; 498 bfd_mach_o_version_min_command;
473 499
500 typedef struct bfd_mach_o_encryption_info_command
501 {
502 unsigned int cryptoff;
503 unsigned int cryptsize;
504 unsigned int cryptid;
505 }
506 bfd_mach_o_encryption_info_command;
507
474 typedef struct bfd_mach_o_load_command 508 typedef struct bfd_mach_o_load_command
475 { 509 {
476 bfd_mach_o_load_command_type type; 510 bfd_mach_o_load_command_type type;
477 bfd_boolean type_required; 511 bfd_boolean type_required;
478 unsigned int offset; 512 unsigned int offset;
479 unsigned int len; 513 unsigned int len;
480 union 514 union
481 { 515 {
482 bfd_mach_o_segment_command segment; 516 bfd_mach_o_segment_command segment;
483 bfd_mach_o_symtab_command symtab; 517 bfd_mach_o_symtab_command symtab;
484 bfd_mach_o_dysymtab_command dysymtab; 518 bfd_mach_o_dysymtab_command dysymtab;
485 bfd_mach_o_thread_command thread; 519 bfd_mach_o_thread_command thread;
486 bfd_mach_o_dylib_command dylib; 520 bfd_mach_o_dylib_command dylib;
487 bfd_mach_o_dylinker_command dylinker; 521 bfd_mach_o_dylinker_command dylinker;
488 bfd_mach_o_prebound_dylib_command prebound_dylib; 522 bfd_mach_o_prebound_dylib_command prebound_dylib;
489 bfd_mach_o_uuid_command uuid; 523 bfd_mach_o_uuid_command uuid;
490 bfd_mach_o_linkedit_command linkedit; 524 bfd_mach_o_linkedit_command linkedit;
491 bfd_mach_o_str_command str; 525 bfd_mach_o_str_command str;
492 bfd_mach_o_dyld_info_command dyld_info; 526 bfd_mach_o_dyld_info_command dyld_info;
493 bfd_mach_o_version_min_command version_min; 527 bfd_mach_o_version_min_command version_min;
528 bfd_mach_o_encryption_info_command encryption_info;
529 bfd_mach_o_fvmlib_command fvmlib;
494 } 530 }
495 command; 531 command;
496 } 532 }
497 bfd_mach_o_load_command; 533 bfd_mach_o_load_command;
498 534
499 typedef struct mach_o_data_struct 535 typedef struct mach_o_data_struct
500 { 536 {
501 /* Mach-O header. */ 537 /* Mach-O header. */
502 bfd_mach_o_header header; 538 bfd_mach_o_header header;
503 /* Array of load commands (length is given by header.ncmds). */ 539 /* Array of load commands (length is given by header.ncmds). */
504 bfd_mach_o_load_command *commands; 540 bfd_mach_o_load_command *commands;
505 541
506 /* Flatten array of sections. The array is 0-based. */ 542 /* Flatten array of sections. The array is 0-based. */
507 unsigned long nsects; 543 unsigned long nsects;
508 bfd_mach_o_section **sections; 544 bfd_mach_o_section **sections;
509 545
510 /* Used while writting: current length of the output file. This is used 546 /* Used while writing: current length of the output file. This is used
511 to allocate space in the file. */ 547 to allocate space in the file. */
512 ufile_ptr filelen; 548 ufile_ptr filelen;
513 549
514 /* As symtab is referenced by other load command, it is handy to have 550 /* As symtab is referenced by other load command, it is handy to have
515 a direct access to it. Although it is not clearly stated, only one symtab 551 a direct access to it. Although it is not clearly stated, only one symtab
516 is expected. */ 552 is expected. */
517 bfd_mach_o_symtab_command *symtab; 553 bfd_mach_o_symtab_command *symtab;
518 bfd_mach_o_dysymtab_command *dysymtab; 554 bfd_mach_o_dysymtab_command *dysymtab;
555
556 /* A place to stash dwarf2 info for this bfd. */
557 void *dwarf2_find_line_info;
558
559 /* BFD of .dSYM file. */
560 bfd *dsym_bfd;
561
562 /* Cache of dynamic relocs. */
563 arelent *dyn_reloc_cache;
519 } 564 }
520 bfd_mach_o_data_struct; 565 bfd_mach_o_data_struct;
521 566
522 typedef struct bfd_mach_o_xlat_name 567 typedef struct bfd_mach_o_xlat_name
523 { 568 {
524 const char *name; 569 const char *name;
525 unsigned long val; 570 unsigned long val;
526 } 571 }
527 bfd_mach_o_xlat_name; 572 bfd_mach_o_xlat_name;
528 573
529 /* Target specific routines. */ 574 /* Target specific routines. */
530 typedef struct bfd_mach_o_backend_data
531 {
532 enum bfd_architecture arch;
533 bfd_boolean (*_bfd_mach_o_swap_reloc_in)(arelent *, bfd_mach_o_reloc_info *);
534 bfd_boolean (*_bfd_mach_o_swap_reloc_out)(arelent *, bfd_mach_o_reloc_info *);
535 bfd_boolean (*_bfd_mach_o_print_thread)(bfd *, bfd_mach_o_thread_flavour *,
536 void *, char *);
537 }
538 bfd_mach_o_backend_data;
539 575
540 #define bfd_mach_o_get_data(abfd) ((abfd)->tdata.mach_o_data) 576 #define bfd_mach_o_get_data(abfd) ((abfd)->tdata.mach_o_data)
541 #define bfd_mach_o_get_backend_data(abfd) \ 577 #define bfd_mach_o_get_backend_data(abfd) \
542 ((bfd_mach_o_backend_data*)(abfd)->xvec->backend_data) 578 ((bfd_mach_o_backend_data*)(abfd)->xvec->backend_data)
543 579
544 /* Get the Mach-O header for section SEC. */ 580 /* Get the Mach-O header for section SEC. */
545 #define bfd_mach_o_get_mach_o_section(sec) \ 581 #define bfd_mach_o_get_mach_o_section(sec) \
546 ((bfd_mach_o_section *)(sec)->used_by_bfd) 582 ((bfd_mach_o_section *)(sec)->used_by_bfd)
547 583
548 bfd_boolean bfd_mach_o_valid (bfd *); 584 bfd_boolean bfd_mach_o_valid (bfd *);
549 bfd_boolean bfd_mach_o_mkobject_init (bfd *); 585 bfd_boolean bfd_mach_o_mkobject_init (bfd *);
550 const bfd_target *bfd_mach_o_object_p (bfd *); 586 const bfd_target *bfd_mach_o_object_p (bfd *);
551 const bfd_target *bfd_mach_o_core_p (bfd *); 587 const bfd_target *bfd_mach_o_core_p (bfd *);
552 const bfd_target *bfd_mach_o_archive_p (bfd *); 588 const bfd_target *bfd_mach_o_archive_p (bfd *);
553 bfd *bfd_mach_o_openr_next_archived_file (bfd *, bfd *); 589 bfd *bfd_mach_o_openr_next_archived_file (bfd *, bfd *);
554 bfd_boolean bfd_mach_o_set_arch_mach (bfd *, enum bfd_architecture, 590 bfd_boolean bfd_mach_o_set_arch_mach (bfd *, enum bfd_architecture,
555 unsigned long); 591 unsigned long);
556 int bfd_mach_o_lookup_command (bfd *, bfd_mach_o_load_command_type, bfd_mach_o_l oad_command **); 592 int bfd_mach_o_lookup_command (bfd *, bfd_mach_o_load_command_type, bfd_mach_o_l oad_command **);
557 bfd_boolean bfd_mach_o_new_section_hook (bfd *, asection *); 593 bfd_boolean bfd_mach_o_new_section_hook (bfd *, asection *);
558 bfd_boolean bfd_mach_o_write_contents (bfd *); 594 bfd_boolean bfd_mach_o_write_contents (bfd *);
559 bfd_boolean bfd_mach_o_bfd_copy_private_symbol_data (bfd *, asymbol *, 595 bfd_boolean bfd_mach_o_bfd_copy_private_symbol_data (bfd *, asymbol *,
560 bfd *, asymbol *); 596 bfd *, asymbol *);
561 bfd_boolean bfd_mach_o_bfd_copy_private_section_data (bfd *, asection *, 597 bfd_boolean bfd_mach_o_bfd_copy_private_section_data (bfd *, asection *,
562 bfd *, asection *); 598 bfd *, asection *);
563 bfd_boolean bfd_mach_o_bfd_copy_private_bfd_data (bfd *, bfd *); 599 bfd_boolean bfd_mach_o_bfd_copy_private_bfd_data (bfd *, bfd *);
600 bfd_boolean bfd_mach_o_bfd_set_private_flags (bfd *, flagword);
564 long bfd_mach_o_get_symtab_upper_bound (bfd *); 601 long bfd_mach_o_get_symtab_upper_bound (bfd *);
565 long bfd_mach_o_canonicalize_symtab (bfd *, asymbol **); 602 long bfd_mach_o_canonicalize_symtab (bfd *, asymbol **);
566 long bfd_mach_o_get_synthetic_symtab (bfd *, long, asymbol **, long, 603 long bfd_mach_o_get_synthetic_symtab (bfd *, long, asymbol **, long,
567 asymbol **, asymbol **ret); 604 asymbol **, asymbol **ret);
568 long bfd_mach_o_get_reloc_upper_bound (bfd *, asection *); 605 long bfd_mach_o_get_reloc_upper_bound (bfd *, asection *);
569 long bfd_mach_o_canonicalize_reloc (bfd *, asection *, arelent **, asymbol **); 606 long bfd_mach_o_canonicalize_reloc (bfd *, asection *, arelent **, asymbol **);
570 long bfd_mach_o_get_dynamic_reloc_upper_bound (bfd *); 607 long bfd_mach_o_get_dynamic_reloc_upper_bound (bfd *);
571 long bfd_mach_o_canonicalize_dynamic_reloc (bfd *, arelent **, asymbol **); 608 long bfd_mach_o_canonicalize_dynamic_reloc (bfd *, arelent **, asymbol **);
572 asymbol *bfd_mach_o_make_empty_symbol (bfd *); 609 asymbol *bfd_mach_o_make_empty_symbol (bfd *);
573 void bfd_mach_o_get_symbol_info (bfd *, asymbol *, symbol_info *); 610 void bfd_mach_o_get_symbol_info (bfd *, asymbol *, symbol_info *);
574 void bfd_mach_o_print_symbol (bfd *, PTR, asymbol *, bfd_print_symbol_type); 611 void bfd_mach_o_print_symbol (bfd *, void *, asymbol *, bfd_print_symbol_type);
575 int bfd_mach_o_sizeof_headers (bfd *, struct bfd_link_info *); 612 int bfd_mach_o_sizeof_headers (bfd *, struct bfd_link_info *);
576 unsigned long bfd_mach_o_stack_addr (enum bfd_mach_o_cpu_type); 613 unsigned long bfd_mach_o_stack_addr (enum bfd_mach_o_cpu_type);
577 int bfd_mach_o_core_fetch_environment (bfd *, unsigned char **, unsigned int *); 614 int bfd_mach_o_core_fetch_environment (bfd *, unsigned char **, unsigned int *);
578 char *bfd_mach_o_core_file_failing_command (bfd *); 615 char *bfd_mach_o_core_file_failing_command (bfd *);
579 int bfd_mach_o_core_file_failing_signal (bfd *); 616 int bfd_mach_o_core_file_failing_signal (bfd *);
580 bfd_boolean bfd_mach_o_core_file_matches_executable_p (bfd *, bfd *); 617 bfd_boolean bfd_mach_o_core_file_matches_executable_p (bfd *, bfd *);
581 bfd *bfd_mach_o_fat_extract (bfd *, bfd_format , const bfd_arch_info_type *); 618 bfd *bfd_mach_o_fat_extract (bfd *, bfd_format , const bfd_arch_info_type *);
582 const bfd_target *bfd_mach_o_header_p (bfd *, bfd_mach_o_filetype, 619 const bfd_target *bfd_mach_o_header_p (bfd *, bfd_mach_o_filetype,
583 bfd_mach_o_cpu_type); 620 bfd_mach_o_cpu_type);
584 bfd_boolean bfd_mach_o_build_commands (bfd *); 621 bfd_boolean bfd_mach_o_build_commands (bfd *);
585 bfd_boolean bfd_mach_o_set_section_contents (bfd *, asection *, const void *, 622 bfd_boolean bfd_mach_o_set_section_contents (bfd *, asection *, const void *,
586 file_ptr, bfd_size_type); 623 file_ptr, bfd_size_type);
587 unsigned int bfd_mach_o_version (bfd *); 624 unsigned int bfd_mach_o_version (bfd *);
588 625
589 unsigned int bfd_mach_o_get_section_type_from_name (const char *); 626 unsigned int bfd_mach_o_get_section_type_from_name (bfd *, const char *);
590 unsigned int bfd_mach_o_get_section_attribute_from_name (const char *); 627 unsigned int bfd_mach_o_get_section_attribute_from_name (const char *);
591 void bfd_mach_o_normalize_section_name (const char *, const char *, 628
592 const char **, flagword *); 629 void bfd_mach_o_convert_section_name_to_bfd (bfd *, const char *, const char *,
630 » » » » » const char **, flagword *);
631 bfd_boolean bfd_mach_o_find_nearest_line (bfd *, asection *, asymbol **,
632 bfd_vma, const char **,
633 const char **, unsigned int *);
634 bfd_boolean bfd_mach_o_close_and_cleanup (bfd *);
635 bfd_boolean bfd_mach_o_free_cached_info (bfd *);
593 636
594 unsigned int bfd_mach_o_section_get_nbr_indirect (bfd *, bfd_mach_o_section *); 637 unsigned int bfd_mach_o_section_get_nbr_indirect (bfd *, bfd_mach_o_section *);
595 unsigned int bfd_mach_o_section_get_entry_size (bfd *, bfd_mach_o_section *); 638 unsigned int bfd_mach_o_section_get_entry_size (bfd *, bfd_mach_o_section *);
596 bfd_boolean bfd_mach_o_read_symtab_symbols (bfd *); 639 bfd_boolean bfd_mach_o_read_symtab_symbols (bfd *);
597 bfd_boolean bfd_mach_o_read_symtab_strtab (bfd *abfd); 640 bfd_boolean bfd_mach_o_read_symtab_strtab (bfd *abfd);
598 641
642 /* A placeholder in case we need to suppress emitting the dysymtab for some
643 reason (e.g. compatibility with older system versions). */
644 #define bfd_mach_o_should_emit_dysymtab(x) TRUE
645
599 extern const bfd_mach_o_xlat_name bfd_mach_o_section_attribute_name[]; 646 extern const bfd_mach_o_xlat_name bfd_mach_o_section_attribute_name[];
600 extern const bfd_mach_o_xlat_name bfd_mach_o_section_type_name[]; 647 extern const bfd_mach_o_xlat_name bfd_mach_o_section_type_name[];
601 648
602 extern const bfd_target mach_o_fat_vec; 649 extern const bfd_target mach_o_fat_vec;
603 650
651 /* Interfaces between BFD names and Mach-O names. */
652
653 typedef struct mach_o_section_name_xlat
654 {
655 const char *bfd_name;
656 const char *mach_o_name;
657 flagword bfd_flags;
658 unsigned int macho_sectype;
659 unsigned int macho_secattr;
660 unsigned int sectalign;
661 } mach_o_section_name_xlat;
662
663 typedef struct mach_o_segment_name_xlat
664 {
665 const char *segname;
666 const mach_o_section_name_xlat *sections;
667 } mach_o_segment_name_xlat;
668
669 const mach_o_section_name_xlat *
670 bfd_mach_o_section_data_for_mach_sect (bfd *, const char *, const char *);
671 const mach_o_section_name_xlat *
672 bfd_mach_o_section_data_for_bfd_name (bfd *, const char *, const char **);
673
674 typedef struct bfd_mach_o_backend_data
675 {
676 enum bfd_architecture arch;
677 bfd_boolean (*_bfd_mach_o_swap_reloc_in)(arelent *, bfd_mach_o_reloc_info *);
678 bfd_boolean (*_bfd_mach_o_swap_reloc_out)(arelent *, bfd_mach_o_reloc_info *);
679 bfd_boolean (*_bfd_mach_o_print_thread)(bfd *, bfd_mach_o_thread_flavour *,
680 void *, char *);
681 const mach_o_segment_name_xlat *segsec_names_xlat;
682 bfd_boolean (*bfd_mach_o_section_type_valid_for_target) (unsigned long);
683 }
684 bfd_mach_o_backend_data;
685
686 /* Values used in symbol.udata.i, to signal that the mach-o-specific data in the
687 symbol are not yet set, or need validation (where this is possible). */
688
689 #define SYM_MACHO_FIELDS_UNSET ((bfd_vma) -1)
690 #define SYM_MACHO_FIELDS_NOT_VALIDATED ((bfd_vma) -2)
691
604 #endif /* _BFD_MACH_O_H_ */ 692 #endif /* _BFD_MACH_O_H_ */
OLDNEW
« no previous file with comments | « bfd/m68klinux.c ('k') | bfd/mach-o.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698