#include "bfd.h"
#include "objdump.h"
#include "bucomm.h"
+#include "dwarf.h"
#include "bfdlink.h"
-#include "libbfd.h"
#include "mach-o.h"
#include "mach-o/external.h"
#include "mach-o/codesign.h"
bfd_mach_o_get_name (bfd_mach_o_dyld_rebase_type_name, imm));
break;
case BFD_MACH_O_REBASE_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB:
- leb = read_unsigned_leb128 (abfd, buf + i, &leblen);
+ leb = read_leb128 (buf + i, &leblen, 0, buf + len);
printf ("set segment: %u and offset: 0x%08x\n",
imm, (unsigned) leb);
i += leblen;
break;
case BFD_MACH_O_REBASE_OPCODE_ADD_ADDR_ULEB:
- leb = read_unsigned_leb128 (abfd, buf + i, &leblen);
+ leb = read_leb128 (buf + i, &leblen, 0, buf + len);
printf ("add addr uleb: 0x%08x\n", (unsigned) leb);
i += leblen;
break;
printf ("rebase imm times: %u\n", imm);
break;
case BFD_MACH_O_REBASE_OPCODE_DO_REBASE_ULEB_TIMES:
- leb = read_unsigned_leb128 (abfd, buf + i, &leblen);
+ leb = read_leb128 (buf + i, &leblen, 0, buf + len);
printf ("rebase uleb times: %u\n", (unsigned) leb);
i += leblen;
break;
case BFD_MACH_O_REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB:
- leb = read_unsigned_leb128 (abfd, buf + i, &leblen);
+ leb = read_leb128 (buf + i, &leblen, 0, buf + len);
printf ("rebase add addr uleb: %u\n", (unsigned) leb);
i += leblen;
break;
case BFD_MACH_O_REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB:
- leb = read_unsigned_leb128 (abfd, buf + i, &leblen);
+ leb = read_leb128 (buf + i, &leblen, 0, buf + len);
printf ("rebase uleb times (%u)", (unsigned) leb);
i += leblen;
- leb = read_unsigned_leb128 (abfd, buf + i, &leblen);
+ leb = read_leb128 (buf + i, &leblen, 0, buf + len);
printf (" skipping uleb (%u)\n", (unsigned) leb);
i += leblen;
break;
printf ("set dylib ordinal imm: %u\n", imm);
break;
case BFD_MACH_O_BIND_OPCODE_SET_DYLIB_ORDINAL_ULEB:
- leb = read_unsigned_leb128 (abfd, buf + i, &leblen);
+ leb = read_leb128 (buf + i, &leblen, 0, buf + len);
printf ("set dylib ordinal uleb: %u\n", imm);
i += leblen;
break;
case BFD_MACH_O_BIND_OPCODE_SET_ADDEND_SLEB:
{
bfd_signed_vma svma;
- svma = read_unsigned_leb128 (abfd, buf + i, &leblen);
+ svma = read_leb128 (buf + i, &leblen, 0, buf + len);
printf ("set addend sleb: 0x%08x\n", (unsigned) svma);
i += leblen;
}
break;
case BFD_MACH_O_BIND_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB:
- leb = read_unsigned_leb128 (abfd, buf + i, &leblen);
+ leb = read_leb128 (buf + i, &leblen, 0, buf + len);
printf ("set segment: %u and offset: 0x%08x\n",
imm, (unsigned) leb);
i += leblen;
break;
case BFD_MACH_O_BIND_OPCODE_ADD_ADDR_ULEB:
- leb = read_unsigned_leb128 (abfd, buf + i, &leblen);
+ leb = read_leb128 (buf + i, &leblen, 0, buf + len);
printf ("add addr uleb: 0x%08x\n", (unsigned) leb);
i += leblen;
break;
printf ("do bind\n");
break;
case BFD_MACH_O_BIND_OPCODE_DO_BIND_ADD_ADDR_ULEB:
- leb = read_unsigned_leb128 (abfd, buf + i, &leblen);
+ leb = read_leb128 (buf + i, &leblen, 0, buf + len);
printf ("do bind add addr uleb: 0x%08x\n", (unsigned) leb);
i += leblen;
break;
printf ("do bind add addr imm scaled: %u\n", imm * ptrsize);
break;
case BFD_MACH_O_BIND_OPCODE_DO_BIND_ULEB_TIMES_SKIPPING_ULEB:
- leb = read_unsigned_leb128 (abfd, buf + i, &leblen);
+ leb = read_leb128 (buf + i, &leblen, 0, buf + len);
printf ("do bind uleb times (%u)", (unsigned) leb);
i += leblen;
- leb = read_unsigned_leb128 (abfd, buf + i, &leblen);
+ leb = read_leb128 (buf + i, &leblen, 0, buf + len);
printf (" skipping uleb (%u)\n", (unsigned) leb);
i += leblen;
break;
unsigned int child_count;
unsigned int i;
- size = read_unsigned_leb128 (abfd, buf + off, &leblen);
+ size = read_leb128 (buf + off, &leblen, 0, buf + len);
off += leblen;
if (size != 0)
bfd_vma flags;
struct export_info_data *d;
- flags = read_unsigned_leb128 (abfd, buf + off, &leblen);
+ flags = read_leb128 (buf + off, &leblen, 0, buf + len);
off += leblen;
fputs (" ", stdout);
{
bfd_vma lib;
- lib = read_unsigned_leb128 (abfd, buf + off, &leblen);
+ lib = read_leb128 (buf + off, &leblen, 0, buf + len);
off += leblen;
fputs (" [reexport] ", stdout);
bfd_vma offset;
bfd_vma resolv = 0;
- offset = read_unsigned_leb128 (abfd, buf + off, &leblen);
+ offset = read_leb128 (buf + off, &leblen, 0, buf + len);
off += leblen;
if (flags & BFD_MACH_O_EXPORT_SYMBOL_FLAGS_STUB_AND_RESOLVER)
{
- resolv = read_unsigned_leb128 (abfd, buf + off, &leblen);
+ resolv = read_leb128 (buf + off, &leblen, 0, buf + len);
off += leblen;
}
}
}
- child_count = read_unsigned_leb128 (abfd, buf + off, &leblen);
+ child_count = read_leb128 (buf + off, &leblen, 0, buf + len);
off += leblen;
for (i = 0; i < child_count; i++)
off += strlen ((const char *)buf + off) + 1;
- sub_off = read_unsigned_leb128 (abfd, buf + off, &leblen);
+ sub_off = read_leb128 (buf + off, &leblen, 0, buf + len);
off += leblen;
dump_dyld_info_export_1 (abfd, buf, len, sub_off, &sub_data, base);
dump_dyld_info (bfd *abfd, bfd_mach_o_load_command *cmd,
bfd_boolean verbose)
{
- bfd_mach_o_dyld_info_command *info = &cmd->command.dyld_info;
+ bfd_mach_o_dyld_info_command *dinfo = &cmd->command.dyld_info;
printf (" rebase: off: 0x%08x size: %-8u (endoff: 0x%08x)\n",
- info->rebase_off, info->rebase_size,
- info->rebase_off + info->rebase_size);
+ dinfo->rebase_off, dinfo->rebase_size,
+ dinfo->rebase_off + dinfo->rebase_size);
printf (" bind: off: 0x%08x size: %-8u (endoff: 0x%08x)\n",
- info->bind_off, info->bind_size,
- info->bind_off + info->bind_size);
+ dinfo->bind_off, dinfo->bind_size,
+ dinfo->bind_off + dinfo->bind_size);
printf (" weak bind: off: 0x%08x size: %-8u (endoff: 0x%08x)\n",
- info->weak_bind_off, info->weak_bind_size,
- info->weak_bind_off + info->weak_bind_size);
+ dinfo->weak_bind_off, dinfo->weak_bind_size,
+ dinfo->weak_bind_off + dinfo->weak_bind_size);
printf (" lazy bind: off: 0x%08x size: %-8u (endoff: 0x%08x)\n",
- info->lazy_bind_off, info->lazy_bind_size,
- info->lazy_bind_off + info->lazy_bind_size);
+ dinfo->lazy_bind_off, dinfo->lazy_bind_size,
+ dinfo->lazy_bind_off + dinfo->lazy_bind_size);
printf (" export: off: 0x%08x size: %-8u (endoff: 0x%08x)\n",
- info->export_off, info->export_size,
- info->export_off + info->export_size);
+ dinfo->export_off, dinfo->export_size,
+ dinfo->export_off + dinfo->export_size);
if (!verbose)
return;
printf (" rebase:\n");
- if (!load_and_dump (abfd, info->rebase_off, info->rebase_size,
+ if (!load_and_dump (abfd, dinfo->rebase_off, dinfo->rebase_size,
dump_dyld_info_rebase))
non_fatal (_("cannot read rebase dyld info"));
printf (" bind:\n");
- if (!load_and_dump (abfd, info->bind_off, info->bind_size,
+ if (!load_and_dump (abfd, dinfo->bind_off, dinfo->bind_size,
dump_dyld_info_bind))
non_fatal (_("cannot read bind dyld info"));
printf (" weak bind:\n");
- if (!load_and_dump (abfd, info->weak_bind_off, info->weak_bind_size,
+ if (!load_and_dump (abfd, dinfo->weak_bind_off, dinfo->weak_bind_size,
dump_dyld_info_bind))
non_fatal (_("cannot read weak bind dyld info"));
printf (" lazy bind:\n");
- if (!load_and_dump (abfd, info->lazy_bind_off, info->lazy_bind_size,
+ if (!load_and_dump (abfd, dinfo->lazy_bind_off, dinfo->lazy_bind_size,
dump_dyld_info_bind))
non_fatal (_("cannot read lazy bind dyld info"));
printf (" exported symbols:\n");
- if (!load_and_dump (abfd, info->export_off, info->export_size,
+ if (!load_and_dump (abfd, dinfo->export_off, dinfo->export_size,
dump_dyld_info_export))
non_fatal (_("cannot read export symbols dyld info"));
}
}
for (p = buf + 1; *p != 0; p += len)
{
- addr += read_unsigned_leb128 (abfd, p, &len);
+ addr += read_leb128 (p, &len, 0, buf + cmd->datasize);
fputs (" ", stdout);
bfd_printf_vma (abfd, addr);
putchar ('\n');
case BFD_MACH_O_LC_SUB_CLIENT:
case BFD_MACH_O_LC_RPATH:
{
- bfd_mach_o_str_command *str = &cmd->command.str;
- printf (" %s\n", str->str);
+ bfd_mach_o_str_command *strc = &cmd->command.str;
+ printf (" %s\n", strc->str);
break;
}
case BFD_MACH_O_LC_THREAD: