Just before a merge with chrisbs stuff

This commit is contained in:
Steve Chamberlain 1991-04-14 02:23:48 +00:00
parent 0ef6f0192d
commit aa802a3246
3 changed files with 153 additions and 152 deletions

View File

@ -31,6 +31,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
void (*bfd_error_trap)(); void (*bfd_error_trap)();
/*SUPPRESS558*/ /*SUPPRESS558*/
/*SUPPRESS529*/ /*SUPPRESS529*/
@ -50,52 +51,54 @@ typedef void generic_symbol_type;
#include "a.out.sun4.h" #include "a.out.sun4.h"
#define CTOR_TABLE_RELOC_IDX 2 #define CTOR_TABLE_RELOC_IDX 2
static CONST reloc_howto_type howto_table_ext[] = static reloc_howto_type howto_table_ext[] =
{ {
/* type rs size bsz pcrel bitpos abs ovrf sf name partial inplace mask*/ /* type rs size bsz pcrel bitpos abs ovrf sf name partial inplace mask*/
{ (unsigned int) RELOC_8, 0, 0, 8, false, 0, true, true,0,"8", false, 0x000000ff}, { (unsigned int) RELOC_8, 0, 0, 8, false, 0, true, true,0,"8", false, 0,0x000000ff},
{ (unsigned int) RELOC_16, 0, 1, 16, false, 0, true, true,0,"16", false, 0x0000ffff}, { (unsigned int) RELOC_16, 0, 1, 16, false, 0, true, true,0,"16", false, 0,0x0000ffff},
{ (unsigned int) RELOC_32, 0, 2, 32, false, 0, true, true,0,"32", false, 0xffffffff}, { (unsigned int) RELOC_32, 0, 2, 32, false, 0, true, true,0,"32", false, 0,0xffffffff},
{ (unsigned int) RELOC_DISP8, 0, 0, 8, true, 0, false, true,0,"DISP8", false, 0x000000ff}, { (unsigned int) RELOC_DISP8, 0, 0, 8, true, 0, false, true,0,"DISP8", false, 0,0x000000ff},
{ (unsigned int) RELOC_DISP16, 0, 1, 16, true, 0, false, true,0,"DISP16", false, 0x0000ffff}, { (unsigned int) RELOC_DISP16, 0, 1, 16, true, 0, false, true,0,"DISP16", false, 0,0x0000ffff},
{ (unsigned int) RELOC_DISP32, 0, 2, 32, true, 0, false, true,0,"DISP32", false, 0xffffffff}, { (unsigned int) RELOC_DISP32, 0, 2, 32, true, 0, false, true,0,"DISP32", false, 0,0xffffffff},
{ (unsigned int) RELOC_WDISP30,2, 2, 30, true, 0, false, true,0,"WDISP30", false, 0x3fffffff}, { (unsigned int) RELOC_WDISP30,2, 2, 30, true, 0, false, true,0,"WDISP30", false, 0,0x3fffffff},
{ (unsigned int) RELOC_WDISP22,2, 2, 22, true, 0, false, true,0,"WDISP22", false, 0x003fffff}, { (unsigned int) RELOC_WDISP22,2, 2, 22, true, 0, false, true,0,"WDISP22", false, 0,0x003fffff},
{ (unsigned int) RELOC_HI22, 10, 2, 22, false, 0, false, true,0,"HI22", false, 0x003fffff}, { (unsigned int) RELOC_HI22, 10, 2, 22, false, 0, false, true,0,"HI22", false, 0,0x003fffff},
{ (unsigned int) RELOC_22, 0, 2, 22, false, 0, false, true,0,"22", false, 0x003fffff}, { (unsigned int) RELOC_22, 0, 2, 22, false, 0, false, true,0,"22", false, 0,0x003fffff},
{ (unsigned int) RELOC_13, 0, 2, 13, false, 0, false, true,0,"13", false, 0x00001fff}, { (unsigned int) RELOC_13, 0, 2, 13, false, 0, false, true,0,"13", false, 0,0x00001fff},
{ (unsigned int) RELOC_LO10, 0, 2, 10, false, 0, false, true,0,"LO10", false, 0x000003ff}, { (unsigned int) RELOC_LO10, 0, 2, 10, false, 0, false, true,0,"LO10", false, 0,0x000003ff},
{ (unsigned int) RELOC_SFA_BASE,0, 2, 32, false, 0, false, true,0,"SFA_BASE", false, 0xffffffff}, { (unsigned int) RELOC_SFA_BASE,0, 2, 32, false, 0, false, true,0,"SFA_BASE", false, 0,0xffffffff},
{ (unsigned int) RELOC_SFA_OFF13,0,2, 32, false, 0, false, true,0,"SFA_OFF13",false, 0xffffffff}, { (unsigned int) RELOC_SFA_OFF13,0,2, 32, false, 0, false, true,0,"SFA_OFF13",false, 0,0xffffffff},
{ (unsigned int) RELOC_BASE10, 0, 2, 16, false, 0, false, true,0,"BASE10", false, 0x0000ffff}, { (unsigned int) RELOC_BASE10, 0, 2, 16, false, 0, false, true,0,"BASE10", false, 0,0x0000ffff},
{ (unsigned int) RELOC_BASE13, 0, 2, 13, false, 0, false, true,0,"BASE13", false, 0x00001fff}, { (unsigned int) RELOC_BASE13, 0, 2, 13, false, 0, false, true,0,"BASE13", false, 0,0x00001fff},
{ (unsigned int) RELOC_BASE22, 0, 2, 0, false, 0, false, true,0,"BASE22", false, 0x00000000}, { (unsigned int) RELOC_BASE22, 0, 2, 0, false, 0, false, true,0,"BASE22", false, 0,0x00000000},
{ (unsigned int) RELOC_PC10, 0, 2, 10, false, 0, false, true,0,"PC10", false, 0x000003ff}, { (unsigned int) RELOC_PC10, 0, 2, 10, false, 0, false, true,0,"PC10", false, 0,0x000003ff},
{ (unsigned int) RELOC_PC22, 0, 2, 22, false, 0, false, true,0,"PC22", false, 0x003fffff}, { (unsigned int) RELOC_PC22, 0, 2, 22, false, 0, false, true,0,"PC22", false, 0,0x003fffff},
{ (unsigned int) RELOC_JMP_TBL,0, 2, 32, false, 0, false, true,0,"JMP_TBL", false, 0xffffffff}, { (unsigned int) RELOC_JMP_TBL,0, 2, 32, false, 0, false, true,0,"JMP_TBL", false, 0,0xffffffff},
{ (unsigned int) RELOC_SEGOFF16,0, 2, 0, false, 0, false, true,0,"SEGOFF16", false, 0x00000000}, { (unsigned int) RELOC_SEGOFF16,0, 2, 0, false, 0, false, true,0,"SEGOFF16", false, 0,0x00000000},
{ (unsigned int) RELOC_GLOB_DAT,0, 2, 0, false, 0, false, true,0,"GLOB_DAT", false, 0x00000000}, { (unsigned int) RELOC_GLOB_DAT,0, 2, 0, false, 0, false, true,0,"GLOB_DAT", false, 0,0x00000000},
{ (unsigned int) RELOC_JMP_SLOT,0, 2, 0, false, 0, false, true,0,"JMP_SLOT", false, 0x00000000}, { (unsigned int) RELOC_JMP_SLOT,0, 2, 0, false, 0, false, true,0,"JMP_SLOT", false, 0,0x00000000},
{ (unsigned int) RELOC_RELATIVE,0, 2, 0, false, 0, false, true,0,"RELATIVE", false, 0x00000000}, { (unsigned int) RELOC_RELATIVE,0, 2, 0, false, 0, false, true,0,"RELATIVE", false, 0,0x00000000},
{ (unsigned int) RELOC_JUMPTARG,2, 13, 16, true, 0, false, true,0,"JUMPTARG", false, 0x0000ffff}, { (unsigned int) RELOC_JUMPTARG,2, 13, 16, true, 0, false, true,0,"JUMPTARG", false, 0,0x0000ffff},
{ (unsigned int) RELOC_CONST, 0, 13, 16, false, 0, false, true,0,"CONST", false, 0x0000ffff}, { (unsigned int) RELOC_CONST, 0, 13, 16, false, 0, false, true,0,"CONST", false, 0,0x0000ffff},
{ (unsigned int) RELOC_CONSTH, 16, 13, 16, false, 0, false, true,0,"CONSTH", false, 0x0000ffff}, { (unsigned int) RELOC_CONSTH, 16, 13, 16, false, 0, false, true,0,"CONSTH", false, 0,0x0000ffff},
}; };
/* Convert standard reloc records to "arelent" format (incl byte swap). */ /* Convert standard reloc records to "arelent" format (incl byte swap). */
static CONST reloc_howto_type howto_table_std[] = { static reloc_howto_type howto_table_std[] = {
/* type rs size bsz pcrel bitpos abs ovrf sf name*/ /* type rs size bsz pcrel bitpos abs ovrf sf name*/
{ (unsigned int) 0, 0, 0, 8, false, 0, true, true,0,"8", true, 0x000000ff}, { (unsigned int) 0, 0, 0, 8, false, 0, true, true,0,"8", true, 0x000000ff,0x000000ff},
{ (unsigned int) 1, 0, 1, 16, false, 0, true, true,0,"16", true, 0x0000ffff}, { (unsigned int) 1, 0, 1, 16, false, 0, true, true,0,"16", true, 0x0000ffff,0x0000ffff},
{ (unsigned int) 2, 0, 2, 32, false, 0, true, true,0,"32", true, 0xffffffff}, { (unsigned int) 2, 0, 2, 32, false, 0, true, true,0,"32", true, 0xffffffff,0xffffffff},
{ (unsigned int) 3, 0, 3, 64, false, 0, true, true,0,"64", true, 0xdeaddead}, { (unsigned int) 3, 0, 3, 64, false, 0, true, true,0,"64", true, 0xdeaddead,0xdeaddead},
{ (unsigned int) 4, 0, 0, 8, true, 0, false, true,0,"DISP8", true, 0x000000ff}, { (unsigned int) 4, 0, 0, 8, true, 0, false, true,0,"DISP8", true, 0x000000ff,0x000000ff},
{ (unsigned int) 5, 0, 1, 16, true, 0, false, true,0,"DISP16", true, 0x0000ffff}, { (unsigned int) 5, 0, 1, 16, true, 0, false, true,0,"DISP16", true, 0x0000ffff,0x0000ffff},
{ (unsigned int) 6, 0, 2, 32, true, 0, false, true,0,"DISP32", true, 0xffffffff}, { (unsigned int) 6, 0, 2, 32, true, 0, false, true,0,"DISP32", true, 0xffffffff,0xffffffff},
{ (unsigned int) 7, 0, 3, 64, true, 0, false, true,0,"DISP64", true, 0xfeedface}, { (unsigned int) 7, 0, 3, 64, true, 0, false, true,0,"DISP64", true, 0xfeedface,0xfeedface},
}; };
bfd_error_vector_type bfd_error_vector;
/** a.out files */ /** a.out files */
@ -116,11 +119,11 @@ bfd *abfd;
} }
} }
void static void
bfd_aout_swap_exec_header_in (abfd, raw_bytes, execp) DEFUN(bfd_aout_swap_exec_header_in,(abfd, raw_bytes, execp),
bfd *abfd; bfd *abfd AND
unsigned char *raw_bytes; unsigned char *raw_bytes AND
struct exec *execp; struct exec *execp)
{ {
struct exec_bytes *bytes = (struct exec_bytes *)raw_bytes; struct exec_bytes *bytes = (struct exec_bytes *)raw_bytes;
@ -135,11 +138,11 @@ bfd_aout_swap_exec_header_in (abfd, raw_bytes, execp)
execp->a_drsize = bfd_h_getlong (abfd, bytes->a_drsize); execp->a_drsize = bfd_h_getlong (abfd, bytes->a_drsize);
} }
void static void
bfd_aout_swap_exec_header_out (abfd, execp, raw_bytes) DEFUN(bfd_aout_swap_exec_header_out,(abfd, execp, raw_bytes),
bfd *abfd; bfd *abfd AND
struct exec *execp; struct exec *execp AND
unsigned char *raw_bytes; unsigned char *raw_bytes)
{ {
struct exec_bytes *bytes = (struct exec_bytes *)raw_bytes; struct exec_bytes *bytes = (struct exec_bytes *)raw_bytes;
@ -183,6 +186,7 @@ static unsigned int n_stroff(ptr)
struct exec *ptr; struct exec *ptr;
{return n_symoff(ptr) + ptr->a_syms;} {return n_symoff(ptr) + ptr->a_syms;}
static
unsigned int n_badmag(ptr) unsigned int n_badmag(ptr)
struct exec *ptr; struct exec *ptr;
{ {
@ -422,7 +426,7 @@ boolean
sunos4_write_object_contents (abfd) sunos4_write_object_contents (abfd)
bfd *abfd; bfd *abfd;
{ {
unsigned int data_pad = 0; size_t data_pad = 0;
unsigned char exec_bytes[EXEC_BYTES_SIZE]; unsigned char exec_bytes[EXEC_BYTES_SIZE];
struct exec *execp = exec_hdr (abfd); struct exec *execp = exec_hdr (abfd);
@ -1057,8 +1061,8 @@ translate_to_native_sym_flags (sym_pointer, cache_ptr_g, abfd)
sym_pointer->n_type |= N_TEXT; sym_pointer->n_type |= N_TEXT;
} }
else { else {
bfd_error_trap(bfd_error_nonrepresentable_section,
bfd_get_output_section(cache_ptr)->name); bfd_error_vector.nonrepresentable_section(abfd, bfd_get_output_section(cache_ptr)->name);
} }
/* Turn the symbol from section relative to absolute again */ /* Turn the symbol from section relative to absolute again */
@ -1106,8 +1110,8 @@ bfd *abfd;
} }
boolean boolean
sunos4_slurp_symbol_table (abfd) DEFUN(sunos4_slurp_symbol_table, (abfd),
bfd *abfd; bfd *abfd)
{ {
unsigned int symbol_count; unsigned int symbol_count;
size_t symbol_size; size_t symbol_size;
@ -1210,10 +1214,10 @@ sunos4_slurp_symbol_table (abfd)
return true; return true;
} }
void void
sunos4_write_syms (abfd) DEFUN(sunos4_write_syms,(abfd),
bfd *abfd; bfd *abfd)
{ {
unsigned int count ; unsigned int count ;
asymbol **generic = bfd_get_outsymbols (abfd); asymbol **generic = bfd_get_outsymbols (abfd);
@ -1280,10 +1284,10 @@ sunos4_write_syms (abfd)
} }
} }
void void
sunos4_reclaim_symbol_table (abfd) DEFUN(sunos4_reclaim_symbol_table,(abfd),
bfd *abfd; bfd *abfd)
{ {
asection *section; asection *section;
@ -1985,20 +1989,20 @@ sunos4_close_and_cleanup (abfd)
*/ */
boolean boolean
sunos4_find_nearest_line(abfd, DEFUN(sunos4_find_nearest_line,(abfd,
section, section,
symbols, symbols,
offset, offset,
filename_ptr, filename_ptr,
functionname_ptr, functionname_ptr,
line_ptr) line_ptr),
bfd *abfd; bfd *abfd AND
asection *section; asection *section AND
asymbol **symbols; asymbol **symbols AND
bfd_vma offset; bfd_vma offset AND
char **filename_ptr; char **filename_ptr AND
char **functionname_ptr; char **functionname_ptr AND
unsigned int *line_ptr; unsigned int *line_ptr)
{ {
/* Run down the file looking for the filename, function and linenumber */ /* Run down the file looking for the filename, function and linenumber */
asymbol **p; asymbol **p;

View File

@ -318,7 +318,7 @@ coff_real_object_p(abfd, nscns, opthdr)
} }
if (bfd_seek(abfd, 0L, SEEK_SET) < 0) if (bfd_seek(abfd, 0L, SEEK_SET) < 0)
return 0; return 0;
if (bfd_read((void *) file_info, 1, readsize, abfd) != readsize) if (bfd_read((PTR) file_info, 1, readsize, abfd) != readsize)
return 0; return 0;
filehdr = (struct filehdr *) file_info; filehdr = (struct filehdr *) file_info;
sections = (struct scnhdr *) (file_info + sizeof(struct filehdr) + opthdr); sections = (struct scnhdr *) (file_info + sizeof(struct filehdr) + opthdr);
@ -408,7 +408,7 @@ coff_real_object_p(abfd, nscns, opthdr)
if (!(filehdr->f_flags & F_LSYMS)) if (!(filehdr->f_flags & F_LSYMS))
abfd->flags |= HAS_LOCALS; abfd->flags |= HAS_LOCALS;
abfd->tdata = (void *) tdata; abfd->tdata = (PTR) tdata;
bfd_get_symcount(abfd) = filehdr->f_nsyms; bfd_get_symcount(abfd) = filehdr->f_nsyms;
if (filehdr->f_nsyms) if (filehdr->f_nsyms)
abfd->flags |= HAS_SYMS; abfd->flags |= HAS_SYMS;
@ -437,7 +437,7 @@ coff_symbol_from(abfd, symbol)
if (symbol->the_bfd->xvec->flavour != bfd_target_coff_flavour_enum) if (symbol->the_bfd->xvec->flavour != bfd_target_coff_flavour_enum)
return (coff_symbol_type *)NULL; return (coff_symbol_type *)NULL;
if (symbol->the_bfd->tdata == (void *)NULL) if (symbol->the_bfd->tdata == (PTR)NULL)
return (coff_symbol_type *)NULL; return (coff_symbol_type *)NULL;
return (coff_symbol_type *) symbol; return (coff_symbol_type *) symbol;
@ -455,7 +455,7 @@ coff_object_p(abfd)
bfd_error = system_call_error; bfd_error = system_call_error;
/* figure out how much to read */ /* figure out how much to read */
if (bfd_read((void *) &magic, 1, sizeof(magic), abfd) != sizeof(magic)) if (bfd_read((PTR) &magic, 1, sizeof(magic), abfd) != sizeof(magic))
return 0; return 0;
magic = bfd_h_getshort(abfd, (bfd_byte *) (&magic)); magic = bfd_h_getshort(abfd, (bfd_byte *) (&magic));
@ -464,13 +464,13 @@ coff_object_p(abfd)
bfd_error = wrong_format; bfd_error = wrong_format;
return 0; return 0;
} }
if (bfd_read((void *) &nscns, 1, sizeof(nscns), abfd) != sizeof(nscns)) if (bfd_read((PTR) &nscns, 1, sizeof(nscns), abfd) != sizeof(nscns))
return 0; return 0;
nscns = bfd_h_getshort(abfd, (unsigned char *) &nscns); nscns = bfd_h_getshort(abfd, (unsigned char *) &nscns);
if (bfd_seek(abfd, (file_ptr) & (((struct filehdr *) NULL)->f_opthdr), SEEK_SET) if (bfd_seek(abfd, (file_ptr) & (((struct filehdr *) NULL)->f_opthdr), SEEK_SET)
< 0) < 0)
return (bfd_target *) NULL; return (bfd_target *) NULL;
if (bfd_read((void *) &opthdr, 1, sizeof(opthdr), abfd) != sizeof(opthdr)) if (bfd_read((PTR) &opthdr, 1, sizeof(opthdr), abfd) != sizeof(opthdr))
return (bfd_target *) NULL; return (bfd_target *) NULL;
opthdr = bfd_h_getshort(abfd, (unsigned char *) &opthdr); opthdr = bfd_h_getshort(abfd, (unsigned char *) &opthdr);
@ -491,7 +491,7 @@ coff_mkobject(abfd)
bfd_error = no_memory; bfd_error = no_memory;
return false; return false;
} }
abfd->tdata = (void *) ((struct icofdata *) rawptr); abfd->tdata = (PTR) ((struct icofdata *) rawptr);
exec_hdr(abfd) = (AOUTHDR *) (rawptr + sizeof(struct icofdata)); exec_hdr(abfd) = (AOUTHDR *) (rawptr + sizeof(struct icofdata));
obj_relocbase(abfd) =0; obj_relocbase(abfd) =0;
return true; return true;
@ -920,10 +920,10 @@ coff_write_symbols(abfd)
int type = native->n_type; int type = native->n_type;
int class = native->n_sclass; int class = native->n_sclass;
bfd_coff_swap_sym(abfd, native); bfd_coff_swap_sym(abfd, native);
bfd_write((void *) native, 1, SYMESZ, abfd); bfd_write((PTR) native, 1, SYMESZ, abfd);
for (j = 0; j != native->n_numaux; j++) { for (j = 0; j != native->n_numaux; j++) {
bfd_coff_swap_aux(abfd, native + j + 1, type, class); bfd_coff_swap_aux(abfd, native + j + 1, type, class);
bfd_write((void *) (native + j + 1), 1, AUXESZ, abfd); bfd_write((PTR) (native + j + 1), 1, AUXESZ, abfd);
} }
/* /*
@ -941,12 +941,12 @@ coff_write_symbols(abfd)
if (string_size) { if (string_size) {
unsigned int size = string_size + 4; unsigned int size = string_size + 4;
bfd_h_put_x(abfd, size, &size); bfd_h_put_x(abfd, size, &size);
bfd_write((void *) &size, 1, sizeof(size), abfd); bfd_write((PTR) &size, 1, sizeof(size), abfd);
for (p = abfd->outsymbols, i = 0; i < limit; i++, p++) { for (p = abfd->outsymbols, i = 0; i < limit; i++, p++) {
asymbol *q = *p; asymbol *q = *p;
size_t name_length = strlen(q->name); size_t name_length = strlen(q->name);
if (name_length > SYMNMLEN) { if (name_length > SYMNMLEN) {
bfd_write((void *) (q->name), 1, name_length + 1, abfd); bfd_write((PTR) (q->name), 1, name_length + 1, abfd);
} }
} }
} }
@ -958,7 +958,7 @@ coff_write_symbols(abfd)
uint32e_type size = 4; uint32e_type size = 4;
bfd_h_put_x(abfd, size, &size); bfd_h_put_x(abfd, size, &size);
bfd_write((void *)&size, 1, sizeof(size), abfd); bfd_write((PTR)&size, 1, sizeof(size), abfd);
} }
@ -981,7 +981,7 @@ coff_write_relocs(abfd)
n.r_symndx = get_index((*(q->sym_ptr_ptr))); n.r_symndx = get_index((*(q->sym_ptr_ptr)));
n.r_type = q->howto->type; n.r_type = q->howto->type;
swap_reloc(abfd, &n); swap_reloc(abfd, &n);
bfd_write((void *) &n, 1, RELSZ, abfd); bfd_write((PTR) &n, 1, RELSZ, abfd);
} }
} }
} }
@ -1001,17 +1001,17 @@ coff_write_linenumbers(abfd)
if (l) { if (l) {
/* Found a linenumber entry, output */ /* Found a linenumber entry, output */
struct lineno out; struct lineno out;
bzero( &out, sizeof(out)); bzero( (PTR)&out, sizeof(out));
out.l_lnno = 0; out.l_lnno = 0;
out.l_addr.l_symndx = l->u.offset; out.l_addr.l_symndx = l->u.offset;
bfd_coff_swap_lineno(abfd, &out); bfd_coff_swap_lineno(abfd, &out);
bfd_write((void *) &out, 1, LINESZ, abfd); bfd_write((PTR) &out, 1, LINESZ, abfd);
l++; l++;
while (l->line_number) { while (l->line_number) {
out.l_lnno = l->line_number; out.l_lnno = l->line_number;
out.l_addr.l_symndx = l->u.offset; out.l_addr.l_symndx = l->u.offset;
bfd_coff_swap_lineno(abfd, &out); bfd_coff_swap_lineno(abfd, &out);
bfd_write((void *) &out, 1, LINESZ, abfd); bfd_write((PTR) &out, 1, LINESZ, abfd);
l++; l++;
} }
} }
@ -1056,7 +1056,7 @@ coff_print_symbol(ignore_abfd, file, symbol, how)
{ {
char *section_name = symbol->section == (asection *) NULL ? char *section_name = symbol->section == (asection *) NULL ?
"*abs" : symbol->section->name; "*abs" : symbol->section->name;
bfd_print_symbol_vandf((void *) file, symbol); bfd_print_symbol_vandf((PTR) file, symbol);
fprintf(file, " %-5s %s %s %s", fprintf(file, " %-5s %s %s %s",
section_name, section_name,
@ -1338,7 +1338,7 @@ coff_write_object_contents(abfd)
#endif #endif
swap_scnhdr(abfd, &section); swap_scnhdr(abfd, &section);
bfd_write((void *) (&section), 1, SCNHSZ, abfd); bfd_write((PTR) (&section), 1, SCNHSZ, abfd);
pad = 0; pad = 0;
} }
@ -1440,11 +1440,11 @@ coff_write_object_contents(abfd)
if (bfd_seek(abfd, 0L, SEEK_SET) != 0) if (bfd_seek(abfd, 0L, SEEK_SET) != 0)
return false; return false;
bfd_write((void *) &file_header, 1, FILHSZ, abfd); bfd_write((PTR) &file_header, 1, FILHSZ, abfd);
if (abfd->flags & EXEC_P) { if (abfd->flags & EXEC_P) {
bfd_write((void *) exec_hdr(abfd), 1, AOUTSZ, abfd); bfd_write((PTR) exec_hdr(abfd), 1, AOUTSZ, abfd);
} }
return true; return true;
} }
@ -1455,7 +1455,7 @@ static boolean
coff_set_section_contents(abfd, section, location, offset, count) coff_set_section_contents(abfd, section, location, offset, count)
bfd *abfd; bfd *abfd;
sec_ptr section; sec_ptr section;
void *location; PTR location;
file_ptr offset; file_ptr offset;
size_t count; size_t count;
{ {
@ -1473,7 +1473,7 @@ static boolean
coff_get_section_contents(abfd, section, location, offset, count) coff_get_section_contents(abfd, section, location, offset, count)
bfd *abfd; bfd *abfd;
sec_ptr section; sec_ptr section;
void *location; PTR location;
file_ptr offset; file_ptr offset;
int count; int count;
{ {
@ -1521,14 +1521,14 @@ coff_close_and_cleanup(abfd)
static void * static PTR
buy_and_read(abfd, where, seek_direction, size) buy_and_read(abfd, where, seek_direction, size)
bfd *abfd; bfd *abfd;
file_ptr where; file_ptr where;
int seek_direction; int seek_direction;
size_t size; size_t size;
{ {
void *area = (void *) malloc(size); PTR area = (PTR) malloc(size);
if (!area) { if (!area) {
bfd_error = no_memory; bfd_error = no_memory;
return (NULL); return (NULL);
@ -2316,7 +2316,7 @@ coff_slurp_reloc_table(abfd, asect, symbols)
*/ */
if (ptr->the_bfd == abfd && ptr->section != (asection *) NULL) { if (ptr->the_bfd == abfd && ptr->section != (asection *) NULL) {
cache_ptr->addend = -ptr->section->vma; cache_ptr->addend = -(ptr->section->vma + ptr->value);
} }
else { else {
cache_ptr->addend = 0; cache_ptr->addend = 0;

View File

@ -131,11 +131,8 @@ struct obstack /* control current object in current chunk */
char *chunk_limit; /* address of char after current chunk */ char *chunk_limit; /* address of char after current chunk */
int temp; /* Temporary for some macros. */ int temp; /* Temporary for some macros. */
int alignment_mask; /* Mask of alignment for each object. */ int alignment_mask; /* Mask of alignment for each object. */
#ifdef __STDC__
void *(*chunkfun) (); /* User's fcn to allocate a chunk. */ PTR(*chunkfun) (); /* User's fcn to allocate a chunk. */
#else
char *(*chunkfun) (); /* User's fcn to allocate a chunk. */
#endif
void (*freefun) (); /* User's function to free a chunk. */ void (*freefun) (); /* User's function to free a chunk. */
}; };