|
From: Doug R. <df...@nl...> - 2004-01-02 11:57:10
|
On Mon, 2003-12-29 at 09:30, Doug Rabson wrote: > > > > I'd be really interested if you can update the port for the FV world. > > I'm going to do that next now that I have the pthreads stuff mostly > working. I've updated the port to work with the post FV valgrind. You can get a patch against today's CVS from http://people.freebsd.org/~dfr/valgrind-20040102-dfr.diff. The only really dodgy bits in this patch are in stage1.c where I had to stub out the stack alignment bits. The code couldn't code when the alignment offset wasn't exactly zero because it assumed that the new aux entries would fit exactly into the gap. I also had problems moving the brk() up past the end of stage2 so I punted on that and just overrode brk() and sbrk() instead. I had problems with vg_signals.c for the async signal handlers. Currently FreeBSD has a bug (which will be fixed RSN) with sigaltstack that means that all threads share the same stack setting. This meant that async signals (intended for the proxylwp) were being delivered on the signal stack instead of the proxylwp stack. I just changed the code to not set SA_ONSTACK for those signals. Attaching GDB doesn't work very well with this port since we have no equivalent of /proc/self/fd. I guess the code could be changed to remember the exec filename and pass that instead of /proc/self/fd/$d. This also affected the implementation of VG_(resolve_filename) which I worked around by using the file descriptor tracking code to lookup the filename. I haven't tested this patch with a Linux box - my RH9 machine is several miles away and switched off for the holidays. I've tried to keep things decently conditional but there are almost certainly one or two nits. |