diff --git a/src/p_mach.cpp b/src/p_mach.cpp index 8ed1d698..e4d04cf4 100644 --- a/src/p_mach.cpp +++ b/src/p_mach.cpp @@ -753,6 +753,11 @@ void PackMachBase::pack4(OutputFile *fo, Filter &ft) // append PackHeader (((Mach_main_command const *)lcp)->entryoff - segTEXT.fileoff)); skip = 1; } break; + case Mach_segment_command::LC_UNIXTHREAD: { // pre-LC_MAIN + threado_setPC(segTEXT.vmaddr + + (threadc_getPC(lcp) - segTEXT.fileoff)); + skip = 1; + } break; case Mach_segment_command::LC_LOAD_DYLIB: { skip = 1; } break; @@ -776,9 +781,6 @@ void PackMachBase::pack4(OutputFile *fo, Filter &ft) // append PackHeader skip = 1; // was not seen } } break; - case Mach_segment_command::LC_UNIXTHREAD: { - skip = 1; // we will use our own - } break; } // end switch if (skip) {