bfd/
2012-01-04 Tristan Gingold <gingold@adacore.com> * mach-o.h: Reindent header. (bfd_mach_o_encryption_info_command): New structure. (bfd_mach_o_load_command): Add encryption_info field. * mach-o.c (bfd_mach_o_read_encryption_info): New function. (bfd_mach_o_read_command): Handle BFD_MACH_O_LC_ENCRYPTION_INFO. (bfd_mach_o_read_command): Adjust error message. binutils/ 2012-01-04 Tristan Gingold <gingold@adacore.com> * od-macho.c: Update copyright year. (dump_load_command): Handle BFD_MACH_O_LC_ENCRYPTION_INFO. include/mach-o/ 2012-01-04 Tristan Gingold <gingold@adacore.com> * external.h: Update copyright year. (mach_o_symtab_command_external): Add comments. (mach_o_encryption_info_command_external): New structure.
This commit is contained in:
parent
2ca7691a9b
commit
fc55a90257
7 changed files with 79 additions and 8 deletions
|
@ -1,3 +1,13 @@
|
||||||
|
2012-01-04 Tristan Gingold <gingold@adacore.com>
|
||||||
|
|
||||||
|
* mach-o.h: Reindent header.
|
||||||
|
(bfd_mach_o_encryption_info_command): New structure.
|
||||||
|
(bfd_mach_o_load_command): Add encryption_info field.
|
||||||
|
|
||||||
|
* mach-o.c (bfd_mach_o_read_encryption_info): New function.
|
||||||
|
(bfd_mach_o_read_command): Handle BFD_MACH_O_LC_ENCRYPTION_INFO.
|
||||||
|
(bfd_mach_o_read_command): Adjust error message.
|
||||||
|
|
||||||
2012-01-04 Shinichiro Hamaji <shinichiro.hamaji@gmail.com>
|
2012-01-04 Shinichiro Hamaji <shinichiro.hamaji@gmail.com>
|
||||||
|
|
||||||
* dwarf2.c (_bfd_dwarf2_slurp_debug_info): Factor out the part
|
* dwarf2.c (_bfd_dwarf2_slurp_debug_info): Factor out the part
|
||||||
|
|
22
bfd/mach-o.c
22
bfd/mach-o.c
|
@ -3411,6 +3411,22 @@ bfd_mach_o_read_version_min (bfd *abfd, bfd_mach_o_load_command *command)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static bfd_boolean
|
||||||
|
bfd_mach_o_read_encryption_info (bfd *abfd, bfd_mach_o_load_command *command)
|
||||||
|
{
|
||||||
|
bfd_mach_o_encryption_info_command *cmd = &command->command.encryption_info;
|
||||||
|
struct mach_o_encryption_info_command_external raw;
|
||||||
|
|
||||||
|
if (bfd_seek (abfd, command->offset + BFD_MACH_O_LC_SIZE, SEEK_SET) != 0
|
||||||
|
|| bfd_bread (&raw, sizeof (raw), abfd) != sizeof (raw))
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
cmd->cryptoff = bfd_get_32 (abfd, raw.cryptoff);
|
||||||
|
cmd->cryptsize = bfd_get_32 (abfd, raw.cryptsize);
|
||||||
|
cmd->cryptid = bfd_get_32 (abfd, raw.cryptid);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
bfd_mach_o_read_segment (bfd *abfd,
|
bfd_mach_o_read_segment (bfd *abfd,
|
||||||
bfd_mach_o_load_command *command,
|
bfd_mach_o_load_command *command,
|
||||||
|
@ -3587,6 +3603,10 @@ bfd_mach_o_read_command (bfd *abfd, bfd_mach_o_load_command *command)
|
||||||
if (bfd_mach_o_read_linkedit (abfd, command) != 0)
|
if (bfd_mach_o_read_linkedit (abfd, command) != 0)
|
||||||
return -1;
|
return -1;
|
||||||
break;
|
break;
|
||||||
|
case BFD_MACH_O_LC_ENCRYPTION_INFO:
|
||||||
|
if (!bfd_mach_o_read_encryption_info (abfd, command))
|
||||||
|
return -1;
|
||||||
|
break;
|
||||||
case BFD_MACH_O_LC_DYLD_INFO:
|
case BFD_MACH_O_LC_DYLD_INFO:
|
||||||
if (bfd_mach_o_read_dyld_info (abfd, command) != 0)
|
if (bfd_mach_o_read_dyld_info (abfd, command) != 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -3597,7 +3617,7 @@ bfd_mach_o_read_command (bfd *abfd, bfd_mach_o_load_command *command)
|
||||||
return -1;
|
return -1;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
(*_bfd_error_handler)(_("%B: unable to read unknown load command 0x%lx"),
|
(*_bfd_error_handler)(_("%B: unknown load command 0x%lx"),
|
||||||
abfd, (unsigned long) command->type);
|
abfd, (unsigned long) command->type);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
12
bfd/mach-o.h
12
bfd/mach-o.h
|
@ -1,6 +1,7 @@
|
||||||
/* Mach-O support for BFD.
|
/* Mach-O support for BFD.
|
||||||
Copyright 1999, 2000, 2001, 2002, 2003, 2005, 2007, 2008, 2009, 2011,
|
Copyright 1999, 2000, 2001, 2002, 2003, 2005, 2007, 2008, 2009, 2011,
|
||||||
2012 Free Software Foundation, Inc.
|
2012
|
||||||
|
Free Software Foundation, Inc.
|
||||||
|
|
||||||
This file is part of BFD, the Binary File Descriptor library.
|
This file is part of BFD, the Binary File Descriptor library.
|
||||||
|
|
||||||
|
@ -482,6 +483,14 @@ typedef struct bfd_mach_o_version_min_command
|
||||||
}
|
}
|
||||||
bfd_mach_o_version_min_command;
|
bfd_mach_o_version_min_command;
|
||||||
|
|
||||||
|
typedef struct bfd_mach_o_encryption_info_command
|
||||||
|
{
|
||||||
|
unsigned int cryptoff;
|
||||||
|
unsigned int cryptsize;
|
||||||
|
unsigned int cryptid;
|
||||||
|
}
|
||||||
|
bfd_mach_o_encryption_info_command;
|
||||||
|
|
||||||
typedef struct bfd_mach_o_load_command
|
typedef struct bfd_mach_o_load_command
|
||||||
{
|
{
|
||||||
bfd_mach_o_load_command_type type;
|
bfd_mach_o_load_command_type type;
|
||||||
|
@ -502,6 +511,7 @@ typedef struct bfd_mach_o_load_command
|
||||||
bfd_mach_o_str_command str;
|
bfd_mach_o_str_command str;
|
||||||
bfd_mach_o_dyld_info_command dyld_info;
|
bfd_mach_o_dyld_info_command dyld_info;
|
||||||
bfd_mach_o_version_min_command version_min;
|
bfd_mach_o_version_min_command version_min;
|
||||||
|
bfd_mach_o_encryption_info_command encryption_info;
|
||||||
}
|
}
|
||||||
command;
|
command;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
2012-01-04 Tristan Gingold <gingold@adacore.com>
|
||||||
|
|
||||||
|
* od-macho.c: Update copyright year.
|
||||||
|
(dump_load_command): Handle BFD_MACH_O_LC_ENCRYPTION_INFO.
|
||||||
|
|
||||||
2011-12-28 Ian Lance Taylor <iant@google.com>
|
2011-12-28 Ian Lance Taylor <iant@google.com>
|
||||||
|
|
||||||
* dwarf.c (read_and_display_attr_value): Handle DW_LANG_Go.
|
* dwarf.c (read_and_display_attr_value): Handle DW_LANG_Go.
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* od-macho.c -- dump information about an Mach-O object file.
|
/* od-macho.c -- dump information about an Mach-O object file.
|
||||||
Copyright 2011 Free Software Foundation, Inc.
|
Copyright 2011, 2012 Free Software Foundation, Inc.
|
||||||
Written by Tristan Gingold, Adacore.
|
Written by Tristan Gingold, Adacore.
|
||||||
|
|
||||||
This file is part of GNU Binutils.
|
This file is part of GNU Binutils.
|
||||||
|
@ -949,6 +949,19 @@ dump_load_command (bfd *abfd, bfd_mach_o_load_command *cmd,
|
||||||
case BFD_MACH_O_LC_UNIXTHREAD:
|
case BFD_MACH_O_LC_UNIXTHREAD:
|
||||||
dump_thread (abfd, cmd);
|
dump_thread (abfd, cmd);
|
||||||
break;
|
break;
|
||||||
|
case BFD_MACH_O_LC_ENCRYPTION_INFO:
|
||||||
|
{
|
||||||
|
bfd_mach_o_encryption_info_command *cryp =
|
||||||
|
&cmd->command.encryption_info;
|
||||||
|
printf
|
||||||
|
("\n"
|
||||||
|
" cryptoff: 0x%08x cryptsize: 0x%08x (endoff 0x%08x)"
|
||||||
|
" cryptid: %u\n",
|
||||||
|
cryp->cryptoff, cryp->cryptsize,
|
||||||
|
cryp->cryptoff + cryp->cryptsize,
|
||||||
|
cryp->cryptid);
|
||||||
|
}
|
||||||
|
break;
|
||||||
case BFD_MACH_O_LC_DYLD_INFO:
|
case BFD_MACH_O_LC_DYLD_INFO:
|
||||||
putchar ('\n');
|
putchar ('\n');
|
||||||
dump_dyld_info (abfd, cmd);
|
dump_dyld_info (abfd, cmd);
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
2012-01-04 Tristan Gingold <gingold@adacore.com>
|
||||||
|
|
||||||
|
* external.h: Update copyright year.
|
||||||
|
(mach_o_symtab_command_external): Add comments.
|
||||||
|
(mach_o_encryption_info_command_external): New structure.
|
||||||
|
|
||||||
2011-12-16 Tristan Gingold <gingold@adacore.com>
|
2011-12-16 Tristan Gingold <gingold@adacore.com>
|
||||||
|
|
||||||
* codesign.h: New file.
|
* codesign.h: New file.
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* Mach-O support for BFD.
|
/* Mach-O support for BFD.
|
||||||
Copyright 2011
|
Copyright 2011, 2012
|
||||||
Free Software Foundation, Inc.
|
Free Software Foundation, Inc.
|
||||||
|
|
||||||
This file is part of BFD, the Binary File Descriptor library.
|
This file is part of BFD, the Binary File Descriptor library.
|
||||||
|
@ -118,10 +118,10 @@ struct mach_o_reloc_info_external
|
||||||
|
|
||||||
struct mach_o_symtab_command_external
|
struct mach_o_symtab_command_external
|
||||||
{
|
{
|
||||||
unsigned char symoff[4];
|
unsigned char symoff[4]; /* File offset of the symbol table. */
|
||||||
unsigned char nsyms[4];
|
unsigned char nsyms[4]; /* Number of symbols. */
|
||||||
unsigned char stroff[4];
|
unsigned char stroff[4]; /* File offset of the string table. */
|
||||||
unsigned char strsize[4];
|
unsigned char strsize[4]; /* String table size. */
|
||||||
};
|
};
|
||||||
|
|
||||||
struct mach_o_nlist_external
|
struct mach_o_nlist_external
|
||||||
|
@ -255,6 +255,13 @@ struct mach_o_version_min_command_external
|
||||||
unsigned char reserved[4];
|
unsigned char reserved[4];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct mach_o_encryption_info_command_external
|
||||||
|
{
|
||||||
|
unsigned char cryptoff[4]; /* File offset of the encrypted area. */
|
||||||
|
unsigned char cryptsize[4]; /* Size of the encrypted area. */
|
||||||
|
unsigned char cryptid[4]; /* Encryption method. */
|
||||||
|
};
|
||||||
|
|
||||||
struct mach_o_fat_header_external
|
struct mach_o_fat_header_external
|
||||||
{
|
{
|
||||||
unsigned char magic[4];
|
unsigned char magic[4];
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue