|
From: Greg P. <gp...@us...> - 2007-04-04 03:37:59
|
Julian Seward writes: > On Tuesday 03 April 2007 23:17, Nicholas Nethercote wrote: >> It's crazy to have three people working independently on this. It's also >> crazy to have people willing to help but not able to because they're >> waiting on others. > > I agree. It would help to have some details on the state of Greg's > (and/or Dave's and/or Robert's) port: I have a substantially working port for x86-darwin, and still-broken ports for amd64-darwin and ppc64-darwin. The current obstacle is legal. I'm an Apple employee, and I need Apple's permission to publish my changes. I've started the ball rolling on this, but it may take a few weeks. > * what code line is it based on (3.2.X or the trunk) ? Some post-3.2.3 trunk. > * what's the status of its getting-started mechanism? Is that > robust? Can you outline how it works? The core+tool binary is carefully constructed to place itself and a captive dynamic loader in a fixed area of the address space. Then the core mmaps the executable and its dynamic loader as the kernel would have. > * what's the status of its address space manager (m_aspacemgr), > one of the most difficult parts of making ports work? Works fine. It's just aspacemgr-linux plus a handful of changes. > * what's the status of its debuginfo reader (m_debuginfo) ? Mostly works. Reads STABS and DWARF from Mach-O files. > * what kinds of programs run? which don't? Several large applications run. Most failures are due to incomplete wrapping of syscalls and IPC. > * how well does it work in the presence of signals and threads? Signals don't work. Fork doesn't work. Simple threading works, but not all thread syscalls are handled yet. > * does memcheck work? if yes, can you run large programs without > getting lots of false errors? Yes. Most errors detected are program errors, not Valgrind errors. > * what other changes are necessary? Lots. Significant examples include: * stack-based syscall parameters * per-OS ioctl hooks * int $0x81 and int $0x82 * generalization of m_ume * increased limits like N_TMPBUF * avoid /proc unless configure saw it * allow 2 words of syscall result -- Greg Parker gp...@us... |