[PATCH v2 2/3] Add FreeBSD/mips architecture.

John Baldwin jhb@freebsd.org
Thu Dec 8 20:08:00 GMT 2016


On Thursday, December 08, 2016 12:47:42 PM Luis Machado wrote:
> On 12/06/2016 03:00 PM, John Baldwin wrote:
> > +static void
> > +mips_fbsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
> > +{
> > +  enum mips_abi abi = mips_abi (gdbarch);
> > +
> > +  /* Generic FreeBSD support.  */
> > +  fbsd_init_abi (info, gdbarch);
> > +
> > +  set_gdbarch_software_single_step (gdbarch, mips_software_single_step);
> > +
> > +  switch (abi)
> > +    {
> > +      case MIPS_ABI_O32:
> > +	tramp_frame_prepend_unwinder (gdbarch, &mips_fbsd_sigframe);
> > +	break;
> > +      case MIPS_ABI_N32:
> > +	break;
> > +      case MIPS_ABI_N64:
> > +	tramp_frame_prepend_unwinder (gdbarch, &mips64_fbsd_sigframe);
> > +	break;
> > +    }
> > +
> > +  set_gdbarch_iterate_over_regset_sections
> > +    (gdbarch, mips_fbsd_iterate_over_regset_sections);
> > +
> > +  /* FreeBSD/mips has SVR4-style shared libraries.  */
> > +  set_solib_svr4_fetch_link_map_offsets
> > +    (gdbarch, (gdbarch_ptr_bit (gdbarch) == 32 ?
> > +	       mips_fbsd_ilp32_fetch_link_map_offsets :
> > +	       mips_fbsd_lp64_fetch_link_map_offsets));
> > +}
> > +
> > +
> 
> Do we need to set a reasonable default in case abi is something unknown 
> or undefined? Maybe as a fail-safe?

Default in which sense, for the sigframe unwinder or something else?
I don't think there's any support in any toolchains I'm aware of to
generate FreeBSD binaries with other ABIs (no O64 in particular).

-- 
John Baldwin



More information about the Binutils mailing list