This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[rfa/rfc:ppc] svr4 and not just ELFOSABI_LINUX for function parsinget.al.


Hello,

I was finding that for a non-GNU/Linux SVR4 PPC platform malloc() was 
failing because RS6000 TOC func-ptr code was being selected:

       /* Handle RS/6000 function pointers.  */
       set_gdbarch_convert_from_func_ptr_addr (gdbarch,
         rs6000_convert_from_func_ptr_addr);

the attached patch changes things to select all of:

       set_gdbarch_frameless_function_invocation (gdbarch,
         ppc_linux_frameless_function_invocation);
       set_gdbarch_frame_chain (gdbarch, ppc_linux_frame_chain);
       set_gdbarch_frame_saved_pc (gdbarch, ppc_linux_frame_saved_pc);

       set_gdbarch_frame_init_saved_regs (gdbarch,
                                          ppc_linux_frame_init_saved_regs);
       set_gdbarch_init_extra_frame_info (gdbarch,
                                          ppc_linux_init_extra_frame_info);

       set_gdbarch_memory_remove_breakpoint (gdbarch,
 
ppc_linux_memory_remove_breakpoint);
       set_solib_svr4_fetch_link_map_offsets
         (gdbarch, ppc_linux_svr4_fetch_link_map_offsets);

when svr4_abi.  It certainly improves things (fails went from 136 -> 80) 
  but I'm not 100% certain if this is correct for all the above - I 
suspect it is overkill :-/

Andrew


2002-04-21  Andrew Cagney  <ac131313@redhat.com>

	* rs6000-tdep.c (rs6000_gdbarch_init): Set
	frameless_function_invocation et.al. when sysv_abi and not just
	ELFOSABI_LINUX.

Index: rs6000-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/rs6000-tdep.c,v
retrieving revision 1.59
diff -u -r1.59 rs6000-tdep.c
--- rs6000-tdep.c	20 Apr 2002 03:09:28 -0000	1.59
+++ rs6000-tdep.c	22 Apr 2002 04:17:40 -0000
@@ -2720,7 +2720,7 @@
   set_gdbarch_frame_chain_valid (gdbarch, file_frame_chain_valid);
   /* Note: kevinb/2002-04-12: See note above regarding *_push_arguments().
      The same remarks hold for the methods below.  */
-  if (osabi == ELFOSABI_LINUX && wordsize == 4)
+  if (sysv_abi && wordsize == 4)
     {
       set_gdbarch_frameless_function_invocation (gdbarch,
 	ppc_linux_frameless_function_invocation);

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]