aboutsummaryrefslogtreecommitdiff
path: root/bfd
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>1999-09-11 14:41:11 +0000
committerIan Lance Taylor <ian@airs.com>1999-09-11 14:41:11 +0000
commit703153b5668996e80932ab4cde7972694a3c6d11 (patch)
tree0b92744c8f9b5c8180ad9553ca08b377ae0c5a8b /bfd
parentfa16d38700e5fbbeb00dbdbad7567366e97e154f (diff)
downloadgdb-703153b5668996e80932ab4cde7972694a3c6d11.zip
gdb-703153b5668996e80932ab4cde7972694a3c6d11.tar.gz
gdb-703153b5668996e80932ab4cde7972694a3c6d11.tar.bz2
1999-09-11 Donn Terry <donn@interix.com>
* syms.c (BSF_DEBUGGING_RELOC): Define. * coffgen.c (fixup_symbol_value): Relocate a symbol which has BSF_DEBUGGING_RELOC set. * bfd-in2.h: Rebuild.
Diffstat (limited to 'bfd')
-rw-r--r--bfd/ChangeLog7
-rw-r--r--bfd/bfd-in2.h7
-rw-r--r--bfd/coffgen.c3
-rw-r--r--bfd/syms.c7
4 files changed, 21 insertions, 3 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index aa16f61..143fbc0 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,10 @@
+1999-09-11 Donn Terry <donn@interix.com>
+
+ * syms.c (BSF_DEBUGGING_RELOC): Define.
+ * coffgen.c (fixup_symbol_value): Relocate a symbol which has
+ BSF_DEBUGGING_RELOC set.
+ * bfd-in2.h: Rebuild.
+
1999-09-10 Ian Lance Taylor <ian@zembu.com>
* ecoff.c (bfd_debug_section): Update initialization for new
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index ec82e0c..b53329c 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -2303,7 +2303,7 @@ typedef struct symbol_cache_entry
<<BSF_GLOBAL>> */
/* The symbol is a debugging record. The value has an arbitary
- meaning. */
+ meaning, unless BSF_DEBUGGING_RELOC is also set. */
#define BSF_DEBUGGING 0x08
/* The symbol denotes a function entry point. Used in ELF,
@@ -2361,6 +2361,11 @@ typedef struct symbol_cache_entry
others someday. */
#define BSF_OBJECT 0x10000
+ /* This symbol is a debugging symbol. The value is the offset
+ into the section of the data. BSF_DEBUGGING should be set
+ as well. */
+#define BSF_DEBUGGING_RELOC 0x20000
+
flagword flags;
/* A pointer to the section to which this symbol is
diff --git a/bfd/coffgen.c b/bfd/coffgen.c
index feb57a3..f090f10 100644
--- a/bfd/coffgen.c
+++ b/bfd/coffgen.c
@@ -585,7 +585,8 @@ fixup_symbol_value (abfd, coff_symbol_ptr, syment)
syment->n_scnum = N_UNDEF;
syment->n_value = coff_symbol_ptr->symbol.value;
}
- else if (coff_symbol_ptr->symbol.flags & BSF_DEBUGGING)
+ else if ((coff_symbol_ptr->symbol.flags & BSF_DEBUGGING) != 0
+ && (coff_symbol_ptr->symbol.flags & BSF_DEBUGGING_RELOC) == 0)
{
syment->n_value = coff_symbol_ptr->symbol.value;
}
diff --git a/bfd/syms.c b/bfd/syms.c
index 86dc66c..676f067 100644
--- a/bfd/syms.c
+++ b/bfd/syms.c
@@ -227,7 +227,7 @@ CODE_FRAGMENT
. <<BSF_GLOBAL>> *}
.
. {* The symbol is a debugging record. The value has an arbitary
-. meaning. *}
+. meaning, unless BSF_DEBUGGING_RELOC is also set. *}
.#define BSF_DEBUGGING 0x08
.
. {* The symbol denotes a function entry point. Used in ELF,
@@ -285,6 +285,11 @@ CODE_FRAGMENT
. others someday. *}
.#define BSF_OBJECT 0x10000
.
+. {* This symbol is a debugging symbol. The value is the offset
+. into the section of the data. BSF_DEBUGGING should be set
+. as well. *}
+.#define BSF_DEBUGGING_RELOC 0x20000
+.
. flagword flags;
.
. {* A pointer to the section to which this symbol is