diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 831f288d51..afc3aa8703 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,4 +1,9 @@ -2011-03-30 Tristan Gingold +2011-03-31 Tristan Gingold + + * coffcode.h (coff_slurp_symbol_table): Silently discard C_NULL + entry on xcoff when value is C_NULL_VALUE. + +2011-03-31 Tristan Gingold * libcoff-in.h (exec_hdr): Remove. * libcoff.h: Regenerate. diff --git a/bfd/coffcode.h b/bfd/coffcode.h index 0fbaa97d41..6ee3db90e5 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 151ea387bb..11aec52c20 100644 --- a/include/coff/ChangeLog +++ b/include/coff/ChangeLog @@ -1,3 +1,7 @@ +2011-03-31 Tristan Gingold + + * internal.h (C_NULL_VALUE): Define. + 2010-06-29 Alan Modra * maxq.h: Delete file. diff --git a/include/coff/internal.h b/include/coff/internal.h index a6ead9e5f6..f52bfbb7ba 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