This build fails with the following error: Source/JavaScriptCore/heap/MachineStackMarker.cpp: In function 'void pthreadSignalHandlerSuspendResume(int, siginfo_t*, void*)': Source/JavaScriptCore/heap/MachineStackMarker.cpp:92:69: error: 'mcontext_t {aka struct __mcontext}' has no member named 'uc_regs' threadData->suspendedMachineContext = *userContext->uc_mcontext.uc_regs; ^ ninja: build stopped: subcommand failed. There is an exception in MachineStackMarker.cpp for PowerPC to use uc_regs, which is not declared on PowerPC, so this does not make much sense: ucontext_t* userContext = static_cast<ucontext_t*>(ucontext); #if CPU(PPC) threadData->suspendedMachineContext = *userContext->uc_mcontext.uc_regs; #else threadData->suspendedMachineContext = userContext->uc_mcontext; #endif Here is the definition of mcontext_t on PowerPC for reference: typedef struct __mcontext { int mc_vers; int mc_flags; #define _MC_FP_VALID 0x01 #define _MC_AV_VALID 0x02 int mc_onstack; /* saved onstack flag */ int mc_len; /* sizeof(__mcontext) */ uint64_t mc_avec[32*2]; /* vector register file */ uint32_t mc_av[2]; register_t mc_frame[42]; uint64_t mc_fpreg[33]; } mcontext_t __aligned(16); Removing the exception allows the build to continue.
Looks like this can be fixed by events with bug 223733. The function in question was removed sometime between 2.16.6 and 2.18.3 (Probably during 2.17 timeframe).
Thanks Justin Hibbits for the feedback.