From 3f14b9dab7cc2b69a54501e8da567e02c0cd63f0 Mon Sep 17 00:00:00 2001 From: John Reiser Date: Tue, 8 Nov 2016 17:53:02 -0800 Subject: [PATCH] LC_UNIXTHREAD in ::pass4 modified: p_mach.cpp --- src/p_mach.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) 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) {