daily update
[external/binutils.git] / gdb / nto-tdep.c
index bf321b8..193f83c 100644 (file)
@@ -1,6 +1,6 @@
 /* nto-tdep.c - general QNX Neutrino target functionality.
 
-   Copyright (C) 2003, 2004, 2007, 2008 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2004, 2007, 2008, 2009 Free Software Foundation, Inc.
 
    Contributed by QNX Software Systems Ltd.
 
@@ -107,14 +107,14 @@ nto_find_and_open_solib (char *solib, unsigned o_flags, char **temp_pathname)
 #define PATH_FMT "%s/lib:%s/usr/lib:%s/usr/photon/lib:%s/usr/photon/dll:%s/lib/dll"
 
   nto_root = nto_target ();
-  if (strcmp (gdbarch_bfd_arch_info (current_gdbarch)->arch_name, "i386") == 0)
+  if (strcmp (gdbarch_bfd_arch_info (target_gdbarch)->arch_name, "i386") == 0)
     {
       arch = "x86";
       endian = "";
     }
-  else if (strcmp (gdbarch_bfd_arch_info (current_gdbarch)->arch_name,
+  else if (strcmp (gdbarch_bfd_arch_info (target_gdbarch)->arch_name,
                   "rs6000") == 0
-          || strcmp (gdbarch_bfd_arch_info (current_gdbarch)->arch_name,
+          || strcmp (gdbarch_bfd_arch_info (target_gdbarch)->arch_name,
                   "powerpc") == 0)
     {
       arch = "ppc";
@@ -122,8 +122,8 @@ nto_find_and_open_solib (char *solib, unsigned o_flags, char **temp_pathname)
     }
   else
     {
-      arch = gdbarch_bfd_arch_info (current_gdbarch)->arch_name;
-      endian = gdbarch_byte_order (current_gdbarch)
+      arch = gdbarch_bfd_arch_info (target_gdbarch)->arch_name;
+      endian = gdbarch_byte_order (target_gdbarch)
               == BFD_ENDIAN_BIG ? "be" : "le";
     }
 
@@ -169,14 +169,14 @@ nto_init_solib_absolute_prefix (void)
   const char *arch;
 
   nto_root = nto_target ();
-  if (strcmp (gdbarch_bfd_arch_info (current_gdbarch)->arch_name, "i386") == 0)
+  if (strcmp (gdbarch_bfd_arch_info (target_gdbarch)->arch_name, "i386") == 0)
     {
       arch = "x86";
       endian = "";
     }
-  else if (strcmp (gdbarch_bfd_arch_info (current_gdbarch)->arch_name,
+  else if (strcmp (gdbarch_bfd_arch_info (target_gdbarch)->arch_name,
                   "rs6000") == 0
-          || strcmp (gdbarch_bfd_arch_info (current_gdbarch)->arch_name,
+          || strcmp (gdbarch_bfd_arch_info (target_gdbarch)->arch_name,
                   "powerpc") == 0)
     {
       arch = "ppc";
@@ -184,8 +184,8 @@ nto_init_solib_absolute_prefix (void)
     }
   else
     {
-      arch = gdbarch_bfd_arch_info (current_gdbarch)->arch_name;
-      endian = gdbarch_byte_order (current_gdbarch)
+      arch = gdbarch_bfd_arch_info (target_gdbarch)->arch_name;
+      endian = gdbarch_byte_order (target_gdbarch)
               == BFD_ENDIAN_BIG ? "be" : "le";
     }
 
@@ -280,10 +280,10 @@ LM_ADDR (struct so_list *so)
   if (so->lm_info->l_addr == (CORE_ADDR)-1)
     {
       struct link_map_offsets *lmo = nto_fetch_link_map_offsets ();
+      struct type *ptr_type = builtin_type (target_gdbarch)->builtin_data_ptr;
 
       so->lm_info->l_addr =
-           extract_typed_address (so->lm_info->lm + lmo->l_addr_offset,
-                                  builtin_type_void_data_ptr);
+       extract_typed_address (so->lm_info->lm + lmo->l_addr_offset, ptr_type);
     }
   return so->lm_info->l_addr;
 }
@@ -291,15 +291,15 @@ LM_ADDR (struct so_list *so)
 static CORE_ADDR
 nto_truncate_ptr (CORE_ADDR addr)
 {
-  if (gdbarch_ptr_bit (current_gdbarch) == sizeof (CORE_ADDR) * 8)
+  if (gdbarch_ptr_bit (target_gdbarch) == sizeof (CORE_ADDR) * 8)
     /* We don't need to truncate anything, and the bit twiddling below
        will fail due to overflow problems.  */
     return addr;
   else
-    return addr & (((CORE_ADDR) 1 << gdbarch_ptr_bit (current_gdbarch)) - 1);
+    return addr & (((CORE_ADDR) 1 << gdbarch_ptr_bit (target_gdbarch)) - 1);
 }
 
-Elf_Internal_Phdr *
+static Elf_Internal_Phdr *
 find_load_phdr (bfd *abfd)
 {
   Elf_Internal_Phdr *phdr;
@@ -398,6 +398,9 @@ nto_initialize_signals (void)
 #endif
 }
 
+/* Provide a prototype to silence -Wmissing-prototypes.  */
+extern initialize_file_ftype _initialize_nto_tdep;
+
 void
 _initialize_nto_tdep (void)
 {