1999-08-18 Donn Terry <donn@interix.com>
* coff-i386.c (coff_i386_reloc): Handle R_IMAGEBASE. (RTYPE2HOWTO): Return NULL if reloc type is out of range. (coff_i386_rtype_to_howto): Likewise. * coffcode.h (coff_slurp_symbol_table): Change a -2 to N_DEBUG. Completely ignore symbols which are all zero. (dummy_reloc16_estimate): Add return 0. * cofflink.c (_bfd_coff_link_input_bfd): Rename inner scope variable copy to name_copy to avoid shadowing outer scope variable. * libcoff-in.h (coff_data_type): Change raw_syment_count field from unsigned int to unsigned long. Add timestamp field. * libcoff.h: Rebuild. Also comment changes.
This commit is contained in:
parent
7bb9db4d63
commit
00692651e0
6 changed files with 77 additions and 24 deletions
|
@ -131,7 +131,7 @@ SUBSUBSECTION
|
|||
moment. To port BFD, that person will have to add more @code{#defines}.
|
||||
Three of the bit twiddling routines are exported to
|
||||
@code{gdb}; @code{coff_swap_aux_in}, @code{coff_swap_sym_in}
|
||||
and @code{coff_swap_linno_in}. @code{GDB} reads the symbol
|
||||
and @code{coff_swap_lineno_in}. @code{GDB} reads the symbol
|
||||
table on its own, but uses BFD to fix things up. More of the
|
||||
bit twiddlers are exported for @code{gas};
|
||||
@code{coff_swap_aux_out}, @code{coff_swap_sym_out},
|
||||
|
@ -2749,7 +2749,7 @@ coff_write_object_contents (abfd)
|
|||
|
||||
#ifdef COFF_LONG_SECTION_NAMES
|
||||
/* Handle long section names as in PE. This must be compatible
|
||||
with the code in coff_write_symbols. */
|
||||
with the code in coff_write_symbols and _bfd_coff_final_link. */
|
||||
{
|
||||
size_t len;
|
||||
|
||||
|
@ -2844,10 +2844,11 @@ coff_write_object_contents (abfd)
|
|||
#endif
|
||||
|
||||
#ifdef COFF_IMAGE_WITH_PE
|
||||
/* suppress output of the sections if they are null. ld includes
|
||||
the bss and data sections even if there is no size assigned
|
||||
to them. NT loader doesn't like it if these section headers are
|
||||
included if the sections themselves are not needed */
|
||||
/* Suppress output of the sections if they are null. ld
|
||||
includes the bss and data sections even if there is no size
|
||||
assigned to them. NT loader doesn't like it if these section
|
||||
headers are included if the sections themselves are not
|
||||
needed. See also coff_compute_section_file_positions. */
|
||||
if (section.s_size == 0)
|
||||
internal_f.f_nscns--;
|
||||
else
|
||||
|
@ -3472,6 +3473,9 @@ SUBSUBSECTION
|
|||
base of the line number information for the table is stored in
|
||||
the symbol associated with the function.
|
||||
|
||||
Note: The PE format uses line number 0 for a flag indicating a
|
||||
new source file.
|
||||
|
||||
The information is copied from the external to the internal
|
||||
table, and each symbol which marks a function is marked by
|
||||
pointing its...
|
||||
|
@ -3561,6 +3565,10 @@ coff_slurp_line_table (abfd, asect)
|
|||
return true;
|
||||
}
|
||||
|
||||
/* Slurp in the symbol table, converting it to generic form. Note
|
||||
that if coff_relocate_section is defined, the linker will read
|
||||
symbols via coff_link_add_symbols, rather than via this routine. */
|
||||
|
||||
static boolean
|
||||
coff_slurp_symbol_table (abfd)
|
||||
bfd * abfd;
|
||||
|
@ -3726,7 +3734,7 @@ coff_slurp_symbol_table (abfd)
|
|||
case C_THUMBSTATFUNC:/* Thumb static function */
|
||||
#endif
|
||||
case C_LABEL: /* label */
|
||||
if (src->u.syment.n_scnum == -2)
|
||||
if (src->u.syment.n_scnum == N_DEBUG)
|
||||
dst->symbol.flags = BSF_DEBUGGING;
|
||||
else
|
||||
dst->symbol.flags = BSF_LOCAL;
|
||||
|
@ -3854,6 +3862,13 @@ coff_slurp_symbol_table (abfd)
|
|||
break;
|
||||
|
||||
case C_NULL:
|
||||
/* PE DLLs sometimes have zeroed out symbols for some
|
||||
reason. Just ignore them without a warning. */
|
||||
if (src->u.syment.n_type == 0
|
||||
&& src->u.syment.n_value == 0
|
||||
&& src->u.syment.n_scnum == 0)
|
||||
break;
|
||||
/* Fall through. */
|
||||
case C_EXTDEF: /* external definition */
|
||||
case C_ULABEL: /* undefined label */
|
||||
case C_USTATIC: /* undefined static */
|
||||
|
@ -4269,6 +4284,7 @@ dummy_reloc16_estimate (abfd, input_section, reloc, shrink, link_info)
|
|||
struct bfd_link_info *link_info ATTRIBUTE_UNUSED;
|
||||
{
|
||||
abort ();
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue