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).