* elfread.c (record_minimal_symbol_and_info): Guess the section to

use from the type.
	* objfiles.c: Include gdb-stabs.h for SECT_* macros.
	(objfile_relocate): Relocate textlow and texthigh in psymtabs.
	Relocate partial symbols.  Check that minimal SYMBOL_SECTION is
	nonnegative before using it.
	* symtab.h: Adjust section field comment.
This commit is contained in:
Ian Lance Taylor 1993-09-21 21:21:35 +00:00
parent 89709d42cb
commit 610a7e7458
3 changed files with 70 additions and 2 deletions

View file

@ -26,6 +26,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
#include "symtab.h"
#include "symfile.h"
#include "objfiles.h"
#include "gdb-stabs.h"
#include <sys/types.h>
#include <sys/stat.h>
@ -473,10 +474,36 @@ objfile_relocate (objfile, new_offsets)
}
}
{
struct partial_symtab *p;
ALL_OBJFILE_PSYMTABS (objfile, p)
{
p->textlow += ANOFFSET (delta, SECT_OFF_TEXT);
p->texthigh += ANOFFSET (delta, SECT_OFF_TEXT);
}
}
{
struct partial_symbol *psym;
for (psym = objfile->global_psymbols.list;
psym < objfile->global_psymbols.next;
psym++)
if (SYMBOL_SECTION (psym) >= 0)
SYMBOL_VALUE_ADDRESS (psym) += ANOFFSET (delta, SYMBOL_SECTION (psym));
for (psym = objfile->static_psymbols.list;
psym < objfile->static_psymbols.next;
psym++)
if (SYMBOL_SECTION (psym) >= 0)
SYMBOL_VALUE_ADDRESS (psym) += ANOFFSET (delta, SYMBOL_SECTION (psym));
}
{
struct minimal_symbol *msym;
ALL_OBJFILE_MSYMBOLS (objfile, msym)
SYMBOL_VALUE_ADDRESS (msym) += ANOFFSET (delta, SYMBOL_SECTION (msym));
if (SYMBOL_SECTION (msym) >= 0)
SYMBOL_VALUE_ADDRESS (msym) += ANOFFSET (delta, SYMBOL_SECTION (msym));
}
{