Apple codesign requires a different secTEXT.size

This commit is contained in:
John Reiser
2015-03-27 20:41:00 -07:00
parent d612585582
commit ae37c3902c
+4 -4
View File
@@ -493,7 +493,7 @@ void PackMachPPC32::pack4(OutputFile *fo, Filter &ft) // append PackHeader
segTEXT.vmsize += t; // utilize GAP + NO_LAP + sz_unc - sz_cpr segTEXT.vmsize += t; // utilize GAP + NO_LAP + sz_unc - sz_cpr
secTEXT.offset = overlay_offset - sizeof(linfo); secTEXT.offset = overlay_offset - sizeof(linfo);
secTEXT.addr = segTEXT.vmaddr + secTEXT.offset; secTEXT.addr = segTEXT.vmaddr + secTEXT.offset;
secTEXT.size = segTEXT.vmsize - secTEXT.offset; secTEXT.size = segTEXT.filesize - secTEXT.offset;
secXHDR.offset = overlay_offset - sizeof(linfo); secXHDR.offset = overlay_offset - sizeof(linfo);
if (my_filetype==Mach_header::MH_EXECUTE) { if (my_filetype==Mach_header::MH_EXECUTE) {
secXHDR.offset -= sizeof(uuid_cmd) + sizeof(linkitem); secXHDR.offset -= sizeof(uuid_cmd) + sizeof(linkitem);
@@ -537,7 +537,7 @@ void PackMachI386::pack4(OutputFile *fo, Filter &ft) // append PackHeader
segTEXT.vmsize += t; // utilize GAP + NO_LAP + sz_unc - sz_cpr segTEXT.vmsize += t; // utilize GAP + NO_LAP + sz_unc - sz_cpr
secTEXT.offset = overlay_offset - sizeof(linfo); secTEXT.offset = overlay_offset - sizeof(linfo);
secTEXT.addr = segTEXT.vmaddr + secTEXT.offset; secTEXT.addr = segTEXT.vmaddr + secTEXT.offset;
secTEXT.size = segTEXT.vmsize - secTEXT.offset; secTEXT.size = segTEXT.filesize - secTEXT.offset;
secXHDR.offset = overlay_offset - sizeof(linfo); secXHDR.offset = overlay_offset - sizeof(linfo);
if (my_filetype==Mach_header::MH_EXECUTE) { if (my_filetype==Mach_header::MH_EXECUTE) {
secXHDR.offset -= sizeof(uuid_cmd) + sizeof(linkitem); secXHDR.offset -= sizeof(uuid_cmd) + sizeof(linkitem);
@@ -581,7 +581,7 @@ void PackMachAMD64::pack4(OutputFile *fo, Filter &ft) // append PackHeader
segTEXT.vmsize += t; // utilize GAP + NO_LAP + sz_unc - sz_cpr segTEXT.vmsize += t; // utilize GAP + NO_LAP + sz_unc - sz_cpr
secTEXT.offset = overlay_offset - sizeof(linfo); secTEXT.offset = overlay_offset - sizeof(linfo);
secTEXT.addr = segTEXT.vmaddr + secTEXT.offset; secTEXT.addr = segTEXT.vmaddr + secTEXT.offset;
secTEXT.size = segTEXT.vmsize - secTEXT.offset; secTEXT.size = segTEXT.filesize - secTEXT.offset;
secXHDR.offset = overlay_offset - sizeof(linfo); secXHDR.offset = overlay_offset - sizeof(linfo);
if (my_filetype==Mach_header::MH_EXECUTE) { if (my_filetype==Mach_header::MH_EXECUTE) {
secXHDR.offset -= sizeof(uuid_cmd) + sizeof(linkitem); secXHDR.offset -= sizeof(uuid_cmd) + sizeof(linkitem);
@@ -625,7 +625,7 @@ void PackMachARMEL::pack4(OutputFile *fo, Filter &ft) // append PackHeader
segTEXT.vmsize += t; // utilize GAP + NO_LAP + sz_unc - sz_cpr segTEXT.vmsize += t; // utilize GAP + NO_LAP + sz_unc - sz_cpr
secTEXT.offset = overlay_offset - sizeof(linfo); secTEXT.offset = overlay_offset - sizeof(linfo);
secTEXT.addr = segTEXT.vmaddr + secTEXT.offset; secTEXT.addr = segTEXT.vmaddr + secTEXT.offset;
secTEXT.size = segTEXT.vmsize - secTEXT.offset; secTEXT.size = segTEXT.filesize - secTEXT.offset;
secXHDR.offset = overlay_offset - sizeof(linfo); secXHDR.offset = overlay_offset - sizeof(linfo);
if (my_filetype==Mach_header::MH_EXECUTE) { if (my_filetype==Mach_header::MH_EXECUTE) {
secXHDR.offset -= sizeof(uuid_cmd) + sizeof(linkitem); secXHDR.offset -= sizeof(uuid_cmd) + sizeof(linkitem);