add s390_gcc_target_options
authorJan Kratochvil <jan.kratochvil@redhat.com>
Wed, 14 May 2014 20:33:41 +0000 (14:33 -0600)
committerJan Kratochvil <jan.kratochvil@redhat.com>
Fri, 12 Dec 2014 21:28:17 +0000 (22:28 +0100)
This adds s390_gcc_target_options, an implementation of the new
"gcc_target_options" gdbarch method.  This was needed because the
default implementation of the method doesn't work properly for S390,
as this architecture needs "-m31" rather than "-m32".

gdb/ChangeLog
2014-12-12  Jan Kratochvil  <jan.kratochvil@redhat.com>

* s390-linux-tdep.c (s390_gcc_target_options): New function.
(s390_gdbarch_init): Add it to gdbarch.

gdb/ChangeLog
gdb/s390-linux-tdep.c

index 7e36eb6..ab5688c 100644 (file)
@@ -1,5 +1,10 @@
 2014-12-12  Jan Kratochvil  <jan.kratochvil@redhat.com>
 
+       * s390-linux-tdep.c (s390_gcc_target_options): New function.
+       (s390_gdbarch_init): Add it to gdbarch.
+
+2014-12-12  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
        * linux-tdep.c: Include objfiles.h and infcall.h.
        (GDB_MMAP_MAP_PRIVATE, GDB_MMAP_MAP_ANONYMOUS, linux_infcall_mmap): New
        function.
index b5d94ce..5dcf40c 100644 (file)
@@ -2808,6 +2808,14 @@ s390_address_class_name_to_type_flags (struct gdbarch *gdbarch,
     return 0;
 }
 
+/* Implement gdbarch_gcc_target_options.  GCC does not know "-m32".  */
+
+static char *
+s390_gcc_target_options (struct gdbarch *gdbarch)
+{
+  return xstrdup ("-m31");
+}
+
 /* Implementation of `gdbarch_stap_is_single_operand', as defined in
    gdbarch.h.  */
 
@@ -3104,6 +3112,7 @@ s390_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
     {
     case ABI_LINUX_S390:
       set_gdbarch_addr_bits_remove (gdbarch, s390_addr_bits_remove);
+      set_gdbarch_gcc_target_options (gdbarch, s390_gcc_target_options);
       set_solib_svr4_fetch_link_map_offsets
        (gdbarch, svr4_ilp32_fetch_link_map_offsets);