diff options
-rw-r--r-- | bfd/ChangeLog | 7 | ||||
-rw-r--r-- | bfd/coffcode.h | 5 | ||||
-rw-r--r-- | include/coff/ChangeLog | 4 | ||||
-rw-r--r-- | include/coff/internal.h | 2 |
4 files changed, 17 insertions, 1 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 831f288..afc3aa8 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,4 +1,9 @@ -2011-03-30 Tristan Gingold <gingold@adacore.com> +2011-03-31 Tristan Gingold <gingold@adacore.com> + + * coffcode.h (coff_slurp_symbol_table): Silently discard C_NULL + entry on xcoff when value is C_NULL_VALUE. + +2011-03-31 Tristan Gingold <gingold@adacore.com> * libcoff-in.h (exec_hdr): Remove. * libcoff.h: Regenerate. diff --git a/bfd/coffcode.h b/bfd/coffcode.h index 0fbaa97..6ee3db9 100644 --- a/bfd/coffcode.h +++ b/bfd/coffcode.h @@ -4896,6 +4896,11 @@ coff_slurp_symbol_table (bfd * abfd) && src->u.syment.n_value == 0 && src->u.syment.n_scnum == 0) break; +#ifdef RS6000COFF_C + /* XCOFF specific: deleted entry. */ + if (src->u.syment.n_value == C_NULL_VALUE) + break; +#endif /* Fall through. */ case C_EXTDEF: /* External definition. */ case C_ULABEL: /* Undefined label. */ diff --git a/include/coff/ChangeLog b/include/coff/ChangeLog index 151ea38..11aec52 100644 --- a/include/coff/ChangeLog +++ b/include/coff/ChangeLog @@ -1,3 +1,7 @@ +2011-03-31 Tristan Gingold <gingold@adacore.com> + + * internal.h (C_NULL_VALUE): Define. + 2010-06-29 Alan Modra <amodra@gmail.com> * maxq.h: Delete file. diff --git a/include/coff/internal.h b/include/coff/internal.h index a6ead9e..f52bfbb 100644 --- a/include/coff/internal.h +++ b/include/coff/internal.h @@ -320,6 +320,8 @@ struct internal_aouthdr #define C_EINCL 109 /* Marks ending of include file */ #define C_AIX_WEAKEXT 111 /* AIX definition of C_WEAKEXT. */ +#define C_NULL_VALUE 0x00de1e00 /* Value for a C_NULL deleted entry. */ + #if defined _AIX52 || defined AIX_WEAK_SUPPORT #undef C_WEAKEXT #define C_WEAKEXT C_AIX_WEAKEXT |