diff options
author | Tristan Gingold <gingold@adacore.com> | 2008-11-06 13:03:43 +0000 |
---|---|---|
committer | Tristan Gingold <gingold@adacore.com> | 2008-11-06 13:03:43 +0000 |
commit | 15e1c58a0e6039cd0bdba2ee6e6639cfe34b4247 (patch) | |
tree | db8c64729d72ed3e9c307e78e07391b0e4311c88 /bfd/mach-o-target.c | |
parent | c8941035c5d1c44080f7df0ea6221b4865f4772c (diff) | |
download | gdb-15e1c58a0e6039cd0bdba2ee6e6639cfe34b4247.zip gdb-15e1c58a0e6039cd0bdba2ee6e6639cfe34b4247.tar.gz gdb-15e1c58a0e6039cd0bdba2ee6e6639cfe34b4247.tar.bz2 |
2008-11-06 Tristan Gingold <gingold@adacore.com>
* mach-o.h (BFD_MACH_O_NO_SECT): Add; reorders the macros.
(BFD_MACH_O_SYM_NTYPE, BFD_MACH_O_SYM_NSECT,
BFD_MACH_O_SYM_NDESC): New macros.
(bfd_mach_o_i386_thread_flavour): Define according to the latest
definition from system header.
(bfd_mach_o_load_command_type): Add BFD_MACH_O_LC_RPATH,
BFD_MACH_O_LC_CODE_SIGNATURE.
(BFD_MACH_O_SECTION_TYPE_MASK, BFD_MACH_O_SECTION_ATTRIBUTES_MASK,
BFD_MACH_O_SECTION_ATTRIBUTES_SYS, BFD_MACH_O_SECTION_ATTRIBUTES_USR,
BFD_MACH_O_S_ATTR_LOC_RELOC, BFD_MACH_O_S_ATTR_EXT_RELOC,
BFD_MACH_O_S_ATTR_SOME_INSTRUCTIONS, BFD_MACH_O_S_ATTR_DEBUG,
BFD_MACH_O_S_ATTR_PURE_INSTRUCTIONS): Add.
(bfd_mach_o_segment_command): Add room for a nul terminator in
segname field.
(BFD_MACH_O_PROT_READ, BFD_MACH_O_PROT_WRITE,
BFD_MACH_O_PROT_EXECUTE): Add.
(INDIRECT_SYMBOL_LOCAL): Renames to BFD_MACH_O_INDIRECT_SYMBOL_LOCAL.
(INDIRECT_SYMBOL_ABS): Renames to BFD_MACH_O_INDIRECT_SYMBOL_ABS.
(bfd_mach_o_uuid_command): Add the structure.
(bfd_mach_o_load_command): Add uuid field.
(bfd_get_mach_o_data): New macro.
* mach-o.c (bfd_mach_o_bfd_print_private_bfd_data): New function which
replaces the macro.
(SECTION_TYPE, SECTION_ATTRIBUTES, SECTION_ATTRIBUTES_USR,
S_ATTR_PURE_INSTRUCTIONS, SECTION_ATTRIBUTES_SYS,
S_ATTR_SOME_INSTRUCTIONS, S_ATTR_EXT_RELOC, S_ATTR_LOC_RELOC): Renamed
and moved to mach-o.h.
(N_STAB, N_TYPE, N_EXT, N_UNDF, N_ABS, N_TEXT, N_DATA, N_BSS,
N_SECT, N_INDR): Removed as they duplicated macros in mach-o.h.
(bfd_mach_o_print_symbol): Print much more details.
(bfd_mach_o_make_bfd_section): Add prot argument, use canonical
dwarf name for dwarf sections. Precisely set section flags.
(bfd_mach_o_scan_read_section_32): Add prot argument.
(bfd_mach_o_scan_read_section_64): Ditto.
(bfd_mach_o_scan_read_section): Ditto.
(bfd_mach_o_scan_read_symtab_symbol): Set section for debugging
stabs, set BSF_GLOBAL and LOCAL flags correctly. Fix section
for N_SECT symbols.
(bfd_mach_o_i386_flavour_string): Reindent and adjust for new
names.
(bfd_mach_o_scan_read_symtab): Set HAS_SYMS flags on bfd if there
are symbols.
(bfd_mach_o_scan_read_uuid): New function.
(bfd_mach_o_scan_read_segment): Add a trailing nul. Segments
flags are now simply HAS_CONTENTS. Pass protection to
bfd_mach_o_scan_read_section.
(bfd_mach_o_scan_read_command): Decode UUID command.
(bfd_mach_o_flatten_sections): Add comments. Fix flavour names.
(bfd_mach_o_scan): Set flags according to file type.
(mach_o_fat_archentry): Remove abfd field.
(bfd_mach_o_archive_p): Remove initialization of abfd field.
(bfd_mach_o_openr_next_archived_file): Find previous archive
by position and not by bfd (as former bfds may have been freed).
Give architecture name to archived file.
* mach-o-target.c (TARGET_NAME): Use generic archive for non fat
targets.
Diffstat (limited to 'bfd/mach-o-target.c')
-rw-r--r-- | bfd/mach-o-target.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/bfd/mach-o-target.c b/bfd/mach-o-target.c index fd4d1e1..a435e6e 100644 --- a/bfd/mach-o-target.c +++ b/bfd/mach-o-target.c @@ -84,27 +84,31 @@ const bfd_target TARGET_NAME = #else _bfd_dummy_target, bfd_mach_o_object_p, - _bfd_dummy_target, + bfd_generic_archive_p, bfd_mach_o_core_p #endif }, { /* bfd_set_format. */ bfd_false, bfd_mach_o_mkobject, - bfd_false, + _bfd_generic_mkarchive, bfd_mach_o_mkobject, }, { /* bfd_write_contents. */ bfd_false, bfd_mach_o_write_contents, - bfd_false, + _bfd_write_archive_contents, bfd_mach_o_write_contents, }, BFD_JUMP_TABLE_GENERIC (bfd_mach_o), BFD_JUMP_TABLE_COPY (bfd_mach_o), BFD_JUMP_TABLE_CORE (bfd_mach_o), +#if TARGET_ARCHIVE BFD_JUMP_TABLE_ARCHIVE (bfd_mach_o), +#else + BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_bsd), +#endif BFD_JUMP_TABLE_SYMBOLS (bfd_mach_o), BFD_JUMP_TABLE_RELOCS (_bfd_norelocs), BFD_JUMP_TABLE_WRITE (bfd_mach_o), |