X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Fnto-tdep.c;h=82a4fcbbb94312dacd1de4c7c1e313619df30546;hb=e99b03dcf42606425eab8bd12eadb8aa4007f35a;hp=04ad06c431a0e8c8e6c4286f06185be01d727b0d;hpb=7a1149643d8621541025e2c70e6391e901c8c7ef;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/nto-tdep.c b/gdb/nto-tdep.c index 04ad06c431..82a4fcbbb9 100644 --- a/gdb/nto-tdep.c +++ b/gdb/nto-tdep.c @@ -1,6 +1,6 @@ /* nto-tdep.c - general QNX Neutrino target functionality. - Copyright (C) 2003-2017 Free Software Foundation, Inc. + Copyright (C) 2003-2018 Free Software Foundation, Inc. Contributed by QNX Software Systems Ltd. @@ -31,6 +31,8 @@ #include "solib-svr4.h" #include "gdbcore.h" #include "objfiles.h" +#include "source.h" +#include "common/pathstuff.h" #define QNX_NOTE_NAME "QNX" #define QNX_INFO_SECT_NAME "QNX_info" @@ -88,7 +90,7 @@ nto_map_arch_to_cputype (const char *arch) int nto_find_and_open_solib (const char *solib, unsigned o_flags, - char **temp_pathname) + gdb::unique_xmalloc_ptr *temp_pathname) { char *buf, *arch_path, *nto_root; const char *endian; @@ -144,7 +146,7 @@ nto_find_and_open_solib (const char *solib, unsigned o_flags, if (ret >= 0) *temp_pathname = gdb_realpath (arch_path); else - *temp_pathname = NULL; + temp_pathname->reset (NULL); } } return ret; @@ -190,7 +192,7 @@ nto_parse_redirection (char *pargv[], const char **pin, const char **pout, const char **perr) { char **argv; - char *in, *out, *err, *p; + const char *in, *out, *err, *p; int argc, i, n; for (n = 0; pargv[n]; n++); @@ -239,43 +241,12 @@ nto_parse_redirection (char *pargv[], const char **pin, const char **pout, return argv; } -/* The struct lm_info, lm_addr, and nto_truncate_ptr are copied from - solib-svr4.c to support nto_relocate_section_addresses - which is different from the svr4 version. */ - -/* Link map info to include in an allocated so_list entry */ - -struct lm_info - { - /* Pointer to copy of link map from inferior. The type is char * - rather than void *, so that we may use byte offsets to find the - various fields without the need for a cast. */ - gdb_byte *lm; - - /* Amount by which addresses in the binary should be relocated to - match the inferior. This could most often be taken directly - from lm, but when prelinking is involved and the prelink base - address changes, we may need a different offset, we want to - warn about the difference and compute it only once. */ - CORE_ADDR l_addr; - - /* The target location of lm. */ - CORE_ADDR lm_addr; - }; - - static CORE_ADDR 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; + lm_info_svr4 *li = (lm_info_svr4 *) so->lm_info; - so->lm_info->l_addr = - extract_typed_address (so->lm_info->lm + lmo->l_addr_offset, ptr_type); - } - return so->lm_info->l_addr; + return li->l_addr; } static CORE_ADDR @@ -411,9 +382,13 @@ static const char *nto_thread_state_str[] = const char * nto_extra_thread_info (struct target_ops *self, struct thread_info *ti) { - if (ti && ti->priv - && ti->priv->state < ARRAY_SIZE (nto_thread_state_str)) - return (char *)nto_thread_state_str [ti->priv->state]; + if (ti != NULL && ti->priv != NULL) + { + nto_thread_info *priv = get_nto_thread_info (ti); + + if (priv->state < ARRAY_SIZE (nto_thread_state_str)) + return nto_thread_state_str [priv->state]; + } return ""; } @@ -564,9 +539,6 @@ nto_inferior_data (struct inferior *const inferior) return inf_data; } -/* Provide a prototype to silence -Wmissing-prototypes. */ -extern initialize_file_ftype _initialize_nto_tdep; - void _initialize_nto_tdep (void) {