+i386_sol2_sigtramp_p (struct frame_info *this_frame)
+{
+ CORE_ADDR pc = get_frame_pc (this_frame);
+ const char *name;
+
+ find_pc_partial_function (pc, &name, NULL, NULL);
+ return (name && (strcmp ("sigacthandler", name) == 0
+ || strcmp (name, "ucbsigvechandler") == 0
+ || strcmp (name, "__sighndlr") == 0));
+}
+
+/* Solaris doesn't have a `struct sigcontext', but it does have a
+ `mcontext_t' that contains the saved set of machine registers. */
+
+static CORE_ADDR
+i386_sol2_mcontext_addr (struct frame_info *this_frame)
+{
+ CORE_ADDR sp, ucontext_addr;
+
+ sp = get_frame_register_unsigned (this_frame, I386_ESP_REGNUM);
+ ucontext_addr = get_frame_memory_unsigned (this_frame, sp + 8, 4);
+
+ return ucontext_addr + 36;
+}
+
+/* SunPRO encodes the static variables. This is not related to C++
+ mangling, it is done for C too. */
+
+static const char *
+i386_sol2_static_transform_name (const char *name)