From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 24741 invoked by alias); 22 Jan 2013 16:28:36 -0000 Mailing-List: contact archer-commits-help@sourceware.org; run by ezmlm Sender: Precedence: bulk List-Post: List-Help: List-Subscribe: Received: (qmail 24665 invoked by uid 306); 22 Jan 2013 16:28:34 -0000 Date: Tue, 22 Jan 2013 16:28:00 -0000 Message-ID: <20130122162833.24633.qmail@sourceware.org> From: tromey@sourceware.org To: archer-commits@sourceware.org Subject: [SCM] archer-tromey-remove-obj_section: more hackery in SOM reader X-Git-Refname: refs/heads/archer-tromey-remove-obj_section X-Git-Reftype: branch X-Git-Oldrev: 8cf1c381f45305c9616de802b263cf6ceaa0012b X-Git-Newrev: 36b2db08d02bd45935a021c3f1446da432b7b94b X-SW-Source: 2013-q1/txt/msg00024.txt.bz2 List-Id: The branch, archer-tromey-remove-obj_section has been updated via 36b2db08d02bd45935a021c3f1446da432b7b94b (commit) from 8cf1c381f45305c9616de802b263cf6ceaa0012b (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 36b2db08d02bd45935a021c3f1446da432b7b94b Author: Tom Tromey Date: Mon Jan 21 08:05:34 2013 -0700 more hackery in SOM reader ----------------------------------------------------------------------- Summary of changes: gdb/solib-som.c | 25 ++++++++++++++++++++----- gdb/somread.c | 5 ++--- 2 files changed, 22 insertions(+), 8 deletions(-) First 500 lines of diff: diff --git a/gdb/solib-som.c b/gdb/solib-som.c index 469fba3..6c64f64 100644 --- a/gdb/solib-som.c +++ b/gdb/solib-som.c @@ -1,6 +1,6 @@ /* Handle SOM shared libraries. - Copyright (C) 2004-2005, 2007-2012 Free Software Foundation, Inc. + Copyright (C) 2004-2005, 2007-2013 Free Software Foundation, Inc. This file is part of GDB. @@ -840,6 +840,7 @@ som_solib_section_offsets (struct objfile *objfile, if (strstr (objfile->name, so_list->so_name)) { asection *private_section; + struct obj_section *sect; /* The text offset is easy. */ offsets->offsets[SECT_OFF_TEXT (objfile)] @@ -857,10 +858,24 @@ som_solib_section_offsets (struct objfile *objfile, offsets->offsets[SECT_OFF_BSS (objfile)] = 0; return 1; } - offsets->offsets[SECT_OFF_DATA (objfile)] - = (so_list->lm_info->data_start - private_section->vma); - offsets->offsets[SECT_OFF_BSS (objfile)] - = ANOFFSET (offsets, SECT_OFF_DATA (objfile)); + if (objfile->sect_index_data != -1) + { + offsets->offsets[SECT_OFF_DATA (objfile)] + = (so_list->lm_info->data_start - private_section->vma); + if (objfile->sect_index_bss != -1) + offsets->offsets[SECT_OFF_BSS (objfile)] + = ANOFFSET (offsets, SECT_OFF_DATA (objfile)); + } + + ALL_OBJFILE_OSECTIONS (objfile, sect) + { + if (sect->the_bfd_section->index != objfile->sect_index_text + && sect->the_bfd_section->index != objfile->sect_index_bss + && sect->the_bfd_section->index != objfile->sect_index_data) + offsets->offsets[sect->the_bfd_section->index] + = offsets->offsets[SECT_OFF_TEXT (objfile)]; + } + return 1; } so_list = so_list->next; diff --git a/gdb/somread.c b/gdb/somread.c index c7add8a..967a9f7 100644 --- a/gdb/somread.c +++ b/gdb/somread.c @@ -55,11 +55,10 @@ som_symtab_read (bfd *abfd, struct objfile *objfile, struct som_external_symbol_dictionary_record *buf, *bufp, *endbufp; char *symname; CONST int symsize = sizeof (struct som_external_symbol_dictionary_record); - CORE_ADDR text_offset, data_offset; - text_offset = ANOFFSET (section_offsets, SECT_OFF_TEXT (objfile)); - data_offset = ANOFFSET (section_offsets, SECT_OFF_DATA (objfile)); +#define text_offset ANOFFSET (section_offsets, SECT_OFF_TEXT (objfile)) +#define data_offset ANOFFSET (section_offsets, SECT_OFF_DATA (objfile)) number_of_symbols = bfd_get_symcount (abfd); hooks/post-receive -- Repository for Project Archer.