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

Luis Machado lgustavo@codesourcery.com
Thu Dec 8 20:13:00 GMT 2016


On 12/08/2016 02:08 PM, John Baldwin wrote:
> 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).
>

For the sigframe unwinders. I was mostly concerned about the switch 
construct without a default case for something invalid.



More information about the Gdb-patches mailing list