This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: Patches for FreeBSD 4.2
- To: Stu Grossman <grossman at juniper dot net>
- Subject: Re: Patches for FreeBSD 4.2
- From: Mark Kettenis <kettenis at science dot uva dot nl>
- Date: 13 Jul 2001 04:46:04 +0200
- Cc: gdb-patches at sources dot redhat dot com
- References: <200107110639.f6B6d4K28642@ploor.juniper.net>
Stu Grossman <grossman@juniper.net> writes:
> Here is a set of patches that fixes a bunch of problems (and some testsuite
> failures) for FreeBSD 4.2.
Thanks. A few comments about the things that fall on my turf:
> + * i386-tdep.c (i386_store_return_value): Make sure that floats get
> + stored at the top of the FP stack.
Already fixed :-).
> + * i386-freebsd-nat.c: New file to support FreeBSD specific stuff.
* I'd prefer the name i386fbsd-nat.c, since we already have
alphafbsd-tdep.c.
* This file won't compile on FreeBSD 3.x, since <machine/sigframe.h>
doesn't exist. Besides, the implementation of a *_frame_saved_pc
function belongs in a target-dependent file, and shouldn't depend on
the target headers. What's wrong with the old implementation?
Hmm, `struct sigcontext' has been changed. The CVS logs in the
FreeBSD tree seems to imply that it is possible to distinguish
between a new and an old signal handler frame. So perhaps we can
distinguish between the two. Otherwise we have to provide different
implementations for old and new FreeBSD versions.
* I think the SOFTWARE_SINGLE_STEP_P stuff can be removed from your
version of child_resume.
> + * config/i386/tm-fbsd.h: Define FRAME_SAVED_PC to use FreeBSD specific
> + code to extract return PC from signal frames.
> + * Define FRAME_CHAIN_VALID to use func_frame_chain_valid, since ELF
> + doesn't generate N_TEXT object file markers.
> + * Remove SIGTRAMP_START and SIGTRAMP_END. Move all of that logic into
> + a FreeBSD specific function invoke via IN_SIGTRAMP.
Why did you comment out USE_STRUCT_CONVENTION here? AFAIK FreeBSD
uses the old GCC 1 conventions for passing short structs.
Mark