summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bfd/ChangeLog4
-rw-r--r--bfd/libpei.h4
-rw-r--r--bfd/peicode.h2
-rw-r--r--bfd/peigen.c15
4 files changed, 24 insertions, 1 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 6a295e1087a..ae92bcea79a 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -7,6 +7,10 @@
1999-09-11 Donn Terry <donn@interix.com>
+ * libpei.h (_bfd_pe_bfd_get_symbol_info): Declare.
+ * peigen.c (_bfd_pe_bfd_get_symbol_info): New function.
+ * peicode.h (coff_get_symbol_info): Define.
+
* config.bfd (i[3456]86-*-interix*): Set targ_cflags to
-DSTRICT_PE_FORMAT.
* coffcode.h (styp_to_sec_flags): Check STRICT_PE_FORMAT rather
diff --git a/bfd/libpei.h b/bfd/libpei.h
index 8af543ae07f..942aa788ad9 100644
--- a/bfd/libpei.h
+++ b/bfd/libpei.h
@@ -234,7 +234,9 @@ unsigned int _bfd_pei_swap_scnhdr_out PARAMS ((bfd *, PTR, PTR));
boolean _bfd_pe_print_private_bfd_data_common PARAMS ((bfd *, PTR));
-boolean _bfd_pe_bfd_copy_private_bfd_data_common PARAMS ((bfd*, bfd*));
+boolean _bfd_pe_bfd_copy_private_bfd_data_common PARAMS ((bfd *, bfd *));
+
+void _bfd_pe_get_symbol_info PARAMS ((bfd *, asymbol *, symbol_info *));
/* The following are needed only for ONE of pe or pei, but don't
otherwise vary; peicode.h fixes up ifdefs but we provide the
diff --git a/bfd/peicode.h b/bfd/peicode.h
index aac50cfa80e..605b1c0192f 100644
--- a/bfd/peicode.h
+++ b/bfd/peicode.h
@@ -347,3 +347,5 @@ pe_bfd_copy_private_bfd_data (ibfd, obfd)
#define coff_bfd_copy_private_section_data \
_bfd_pe_bfd_copy_private_section_data
+
+#define coff_get_symbol_info _bfd_pe_get_symbol_info
diff --git a/bfd/peigen.c b/bfd/peigen.c
index f959e148746..8d623bd87e7 100644
--- a/bfd/peigen.c
+++ b/bfd/peigen.c
@@ -1808,3 +1808,18 @@ _bfd_pe_bfd_copy_private_section_data (ibfd, isec, obfd, osec)
return true;
}
+
+void
+_bfd_pe_get_symbol_info (abfd, symbol, ret)
+ bfd *abfd;
+ asymbol *symbol;
+ symbol_info *ret;
+{
+ coff_get_symbol_info (abfd, symbol, ret);
+
+ if (pe_data (abfd) != NULL
+ && ((symbol->flags & BSF_DEBUGGING) == 0
+ || (symbol->flags & BSF_DEBUGGING_RELOC) != 0)
+ && ! bfd_is_abs_section (symbol->section))
+ ret->value += pe_data (abfd)->pe_opthdr.ImageBase;
+}