unexmacosx.c: Now corrects the offset in two hints table to allow prebinding
to be redone and allow the executable to be stripped.
This commit is contained in:
parent
b6f85fd7e0
commit
40e6ff959e
2 changed files with 28 additions and 0 deletions
|
@ -1,3 +1,9 @@
|
|||
2002-12-01 Steven Tamm <steventamm@mac.com>
|
||||
|
||||
* unexmacosx.c (copy_twolevelhints, dump_it): Now corrects the
|
||||
offset in two hints table to allow prebinding to be redone and
|
||||
allow the executable to be stripped.
|
||||
|
||||
2002-11-29 Dave Love <fx@gnu.org>
|
||||
|
||||
* fns.c (Frequire): Don't call LOADHIST_ATTACH if feature was
|
||||
|
|
|
@ -753,6 +753,25 @@ copy_dysymtab (struct load_command *lc)
|
|||
curr_header_offset += lc->cmdsize;
|
||||
}
|
||||
|
||||
/* Copy a LC_TWOLEVEL_HINTS load command from the input file to the output
|
||||
file, adjusting the file offset fields. */
|
||||
static void
|
||||
copy_twolevelhints (struct load_command *lc)
|
||||
{
|
||||
struct twolevel_hints_command *tlhp = (struct twolevel_hints_command *) lc;
|
||||
|
||||
if (tlhp->nhints > 0) {
|
||||
tlhp->offset += delta;
|
||||
}
|
||||
|
||||
printf ("Writing LC_TWOLEVEL_HINTS command\n");
|
||||
|
||||
if (!unexec_write (curr_header_offset, lc, lc->cmdsize))
|
||||
unexec_error ("cannot write two level hint command to header");
|
||||
|
||||
curr_header_offset += lc->cmdsize;
|
||||
}
|
||||
|
||||
/* Copy other kinds of load commands from the input file to the output
|
||||
file, ones that do not require adjustments of file offsets. */
|
||||
static void
|
||||
|
@ -799,6 +818,9 @@ dump_it ()
|
|||
case LC_DYSYMTAB:
|
||||
copy_dysymtab (lca[i]);
|
||||
break;
|
||||
case LC_TWOLEVEL_HINTS:
|
||||
copy_twolevelhints (lca[i]);
|
||||
break;
|
||||
default:
|
||||
copy_other (lca[i]);
|
||||
break;
|
||||
|
|
Loading…
Add table
Reference in a new issue