maintainer-feedback requested: [Bug 221645] www/webkit2-gtk3 build fails on PPC because of exception for PPC

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Sun Aug 20 07:20:00 UTC 2017


Robin <solence at zoho.eu> has reassigned Bugzilla Automation
<bugzilla at FreeBSD.org>'s request for maintainer-feedback to gnome at FreeBSD.org:
Bug 221645: www/webkit2-gtk3 build fails on PPC because of exception for PPC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=221645



--- Description ---
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.


More information about the freebsd-gnome mailing list