From aa802a324642d093973ad207a07351f5c354751e Mon Sep 17 00:00:00 2001 From: Steve Chamberlain Date: Sun, 14 Apr 1991 02:23:48 +0000 Subject: [PATCH] Just before a merge with chrisbs stuff --- bfd/aout.c | 184 +++++++++++++++++++++++++----------------------- bfd/coff-code.h | 110 ++++++++++++++--------------- bfd/obstack.h | 11 ++- 3 files changed, 153 insertions(+), 152 deletions(-) diff --git a/bfd/aout.c b/bfd/aout.c index 3391657ba7..dc931ee81f 100755 --- a/bfd/aout.c +++ b/bfd/aout.c @@ -31,6 +31,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ void (*bfd_error_trap)(); + /*SUPPRESS558*/ /*SUPPRESS529*/ @@ -50,52 +51,54 @@ typedef void generic_symbol_type; #include "a.out.sun4.h" #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*/ -{ (unsigned int) RELOC_8, 0, 0, 8, false, 0, true, true,0,"8", false, 0x000000ff}, -{ (unsigned int) RELOC_16, 0, 1, 16, false, 0, true, true,0,"16", false, 0x0000ffff}, -{ (unsigned int) RELOC_32, 0, 2, 32, false, 0, true, true,0,"32", false, 0xffffffff}, -{ (unsigned int) RELOC_DISP8, 0, 0, 8, true, 0, false, true,0,"DISP8", false, 0x000000ff}, -{ (unsigned int) RELOC_DISP16, 0, 1, 16, true, 0, false, true,0,"DISP16", false, 0x0000ffff}, -{ (unsigned int) RELOC_DISP32, 0, 2, 32, true, 0, false, true,0,"DISP32", false, 0xffffffff}, -{ (unsigned int) RELOC_WDISP30,2, 2, 30, true, 0, false, true,0,"WDISP30", false, 0x3fffffff}, -{ (unsigned int) RELOC_WDISP22,2, 2, 22, true, 0, false, true,0,"WDISP22", false, 0x003fffff}, -{ (unsigned int) RELOC_HI22, 10, 2, 22, false, 0, false, true,0,"HI22", false, 0x003fffff}, -{ (unsigned int) RELOC_22, 0, 2, 22, false, 0, false, true,0,"22", false, 0x003fffff}, -{ (unsigned int) RELOC_13, 0, 2, 13, false, 0, false, true,0,"13", false, 0x00001fff}, -{ (unsigned int) RELOC_LO10, 0, 2, 10, false, 0, false, true,0,"LO10", false, 0x000003ff}, -{ (unsigned int) RELOC_SFA_BASE,0, 2, 32, false, 0, false, true,0,"SFA_BASE", false, 0xffffffff}, -{ (unsigned int) RELOC_SFA_OFF13,0,2, 32, false, 0, false, true,0,"SFA_OFF13",false, 0xffffffff}, -{ (unsigned int) RELOC_BASE10, 0, 2, 16, false, 0, false, true,0,"BASE10", false, 0x0000ffff}, -{ (unsigned int) RELOC_BASE13, 0, 2, 13, false, 0, false, true,0,"BASE13", false, 0x00001fff}, -{ (unsigned int) RELOC_BASE22, 0, 2, 0, false, 0, false, true,0,"BASE22", false, 0x00000000}, -{ (unsigned int) RELOC_PC10, 0, 2, 10, false, 0, false, true,0,"PC10", false, 0x000003ff}, -{ (unsigned int) RELOC_PC22, 0, 2, 22, false, 0, false, true,0,"PC22", false, 0x003fffff}, -{ (unsigned int) RELOC_JMP_TBL,0, 2, 32, false, 0, false, true,0,"JMP_TBL", false, 0xffffffff}, -{ (unsigned int) RELOC_SEGOFF16,0, 2, 0, false, 0, false, true,0,"SEGOFF16", false, 0x00000000}, -{ (unsigned int) RELOC_GLOB_DAT,0, 2, 0, false, 0, false, true,0,"GLOB_DAT", false, 0x00000000}, -{ (unsigned int) RELOC_JMP_SLOT,0, 2, 0, false, 0, false, true,0,"JMP_SLOT", false, 0x00000000}, -{ (unsigned int) RELOC_RELATIVE,0, 2, 0, false, 0, false, true,0,"RELATIVE", false, 0x00000000}, -{ (unsigned int) RELOC_JUMPTARG,2, 13, 16, true, 0, false, true,0,"JUMPTARG", false, 0x0000ffff}, -{ (unsigned int) RELOC_CONST, 0, 13, 16, false, 0, false, true,0,"CONST", false, 0x0000ffff}, -{ (unsigned int) RELOC_CONSTH, 16, 13, 16, false, 0, false, true,0,"CONSTH", false, 0x0000ffff}, +{ (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, 0,0x0000ffff}, +{ (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, 0,0x000000ff}, +{ (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, 0,0xffffffff}, +{ (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, 0,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, 0,0x003fffff}, +{ (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, 0,0x000003ff}, +{ (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, 0,0xffffffff}, +{ (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, 0,0x00001fff}, +{ (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, 0,0x000003ff}, +{ (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, 0,0xffffffff}, +{ (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, 0,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, 0,0x00000000}, +{ (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, 0,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). */ -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*/ -{ (unsigned int) 0, 0, 0, 8, false, 0, true, true,0,"8", true, 0x000000ff}, -{ (unsigned int) 1, 0, 1, 16, false, 0, true, true,0,"16", true, 0x0000ffff}, -{ (unsigned int) 2, 0, 2, 32, false, 0, true, true,0,"32", true, 0xffffffff}, -{ (unsigned int) 3, 0, 3, 64, false, 0, true, true,0,"64", true, 0xdeaddead}, -{ (unsigned int) 4, 0, 0, 8, true, 0, false, true,0,"DISP8", true, 0x000000ff}, -{ (unsigned int) 5, 0, 1, 16, true, 0, false, true,0,"DISP16", true, 0x0000ffff}, -{ (unsigned int) 6, 0, 2, 32, true, 0, false, true,0,"DISP32", true, 0xffffffff}, -{ (unsigned int) 7, 0, 3, 64, true, 0, false, true,0,"DISP64", true, 0xfeedface}, +{ (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,0x0000ffff}, +{ (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,0xdeaddead}, +{ (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,0x0000ffff}, +{ (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,0xfeedface}, }; + +bfd_error_vector_type bfd_error_vector; /** a.out files */ @@ -116,11 +119,11 @@ bfd *abfd; } } -void -bfd_aout_swap_exec_header_in (abfd, raw_bytes, execp) - bfd *abfd; - unsigned char *raw_bytes; - struct exec *execp; +static void +DEFUN(bfd_aout_swap_exec_header_in,(abfd, raw_bytes, execp), + bfd *abfd AND + unsigned char *raw_bytes AND + struct exec *execp) { 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); } -void -bfd_aout_swap_exec_header_out (abfd, execp, raw_bytes) - bfd *abfd; - struct exec *execp; - unsigned char *raw_bytes; +static void +DEFUN(bfd_aout_swap_exec_header_out,(abfd, execp, raw_bytes), + bfd *abfd AND + struct exec *execp AND + unsigned char *raw_bytes) { struct exec_bytes *bytes = (struct exec_bytes *)raw_bytes; @@ -183,6 +186,7 @@ static unsigned int n_stroff(ptr) struct exec *ptr; {return n_symoff(ptr) + ptr->a_syms;} +static unsigned int n_badmag(ptr) struct exec *ptr; { @@ -422,7 +426,7 @@ boolean sunos4_write_object_contents (abfd) bfd *abfd; { - unsigned int data_pad = 0; + size_t data_pad = 0; unsigned char exec_bytes[EXEC_BYTES_SIZE]; struct exec *execp = exec_hdr (abfd); @@ -464,17 +468,17 @@ sunos4_write_object_contents (abfd) N_SET_FLAGS (*execp, 0x1); /* copied from ld.c; who the hell knows? */ if (abfd->flags & D_PAGED) - { - data_pad = ((obj_datasec(abfd)->size + PAGE_SIZE -1) - & (- PAGE_SIZE)) - obj_datasec(abfd)->size; + { + data_pad = ((obj_datasec(abfd)->size + PAGE_SIZE -1) + & (- PAGE_SIZE)) - obj_datasec(abfd)->size; - if (data_pad > obj_bsssec(abfd)->size) - execp->a_bss = 0; - else - execp->a_bss = obj_bsssec(abfd)->size - data_pad; - execp->a_data = obj_datasec(abfd)->size + data_pad; + if (data_pad > obj_bsssec(abfd)->size) + execp->a_bss = 0; + else + execp->a_bss = obj_bsssec(abfd)->size - data_pad; + execp->a_data = obj_datasec(abfd)->size + data_pad; - } + } else { execp->a_data = obj_datasec (abfd)->size; execp->a_bss = obj_bsssec (abfd)->size; @@ -497,19 +501,19 @@ sunos4_write_object_contents (abfd) /* Now write out reloc info, followed by syms and strings */ if (bfd_get_symcount (abfd) != 0) - { - bfd_seek (abfd, - (long)(N_SYMOFF(*execp)), false); + { + bfd_seek (abfd, + (long)(N_SYMOFF(*execp)), false); - sunos4_write_syms (abfd); + sunos4_write_syms (abfd); - bfd_seek (abfd, (long)(N_TROFF(*execp)), false); + bfd_seek (abfd, (long)(N_TROFF(*execp)), false); - if (!sunos4_squirt_out_relocs (abfd, obj_textsec (abfd))) return false; - bfd_seek (abfd, (long)(N_DROFF(*execp)), false); + if (!sunos4_squirt_out_relocs (abfd, obj_textsec (abfd))) return false; + bfd_seek (abfd, (long)(N_DROFF(*execp)), false); - if (!sunos4_squirt_out_relocs (abfd, obj_datasec (abfd))) return false; - } + if (!sunos4_squirt_out_relocs (abfd, obj_datasec (abfd))) return false; + } return true; } @@ -1057,8 +1061,8 @@ translate_to_native_sym_flags (sym_pointer, cache_ptr_g, abfd) sym_pointer->n_type |= N_TEXT; } 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 */ @@ -1106,8 +1110,8 @@ bfd *abfd; } boolean -sunos4_slurp_symbol_table (abfd) - bfd *abfd; +DEFUN(sunos4_slurp_symbol_table, (abfd), + bfd *abfd) { unsigned int symbol_count; size_t symbol_size; @@ -1210,10 +1214,10 @@ sunos4_slurp_symbol_table (abfd) return true; } - + void -sunos4_write_syms (abfd) - bfd *abfd; +DEFUN(sunos4_write_syms,(abfd), + bfd *abfd) { unsigned int count ; asymbol **generic = bfd_get_outsymbols (abfd); @@ -1280,10 +1284,10 @@ sunos4_write_syms (abfd) } } - + void -sunos4_reclaim_symbol_table (abfd) - bfd *abfd; +DEFUN(sunos4_reclaim_symbol_table,(abfd), + bfd *abfd) { asection *section; @@ -1985,20 +1989,20 @@ sunos4_close_and_cleanup (abfd) */ boolean -sunos4_find_nearest_line(abfd, - section, - symbols, - offset, - filename_ptr, - functionname_ptr, - line_ptr) -bfd *abfd; -asection *section; -asymbol **symbols; -bfd_vma offset; -char **filename_ptr; -char **functionname_ptr; -unsigned int *line_ptr; +DEFUN(sunos4_find_nearest_line,(abfd, + section, + symbols, + offset, + filename_ptr, + functionname_ptr, + line_ptr), + bfd *abfd AND + asection *section AND + asymbol **symbols AND + bfd_vma offset AND + char **filename_ptr AND + char **functionname_ptr AND + unsigned int *line_ptr) { /* Run down the file looking for the filename, function and linenumber */ asymbol **p; diff --git a/bfd/coff-code.h b/bfd/coff-code.h index 0e2ff6a327..ba9832c90e 100755 --- a/bfd/coff-code.h +++ b/bfd/coff-code.h @@ -46,7 +46,7 @@ Most of this hacked by Steve Chamberlain, steve@cygnus.com /* All the swapping routines */ -static void +static void swap_reloc(abfd, reloc) bfd *abfd; RELOC *reloc; @@ -57,7 +57,7 @@ swap_reloc(abfd, reloc) } -static void +static void swap_filehdr(abfd, filehdr) bfd *abfd; FILHDR *filehdr; @@ -73,7 +73,7 @@ swap_filehdr(abfd, filehdr) } -static void +static void swap_aouthdr(abfd, aouthdr) bfd *abfd; AOUTHDR *aouthdr; @@ -92,7 +92,7 @@ swap_aouthdr(abfd, aouthdr) #endif } -static void +static void swap_scnhdr(abfd, scnhdr) bfd *abfd; SCNHDR *scnhdr; @@ -111,7 +111,7 @@ swap_scnhdr(abfd, scnhdr) #endif } -static void +static void swap_name(abfd, ptr) bfd *abfd; long *ptr; @@ -125,7 +125,7 @@ swap_name(abfd, ptr) } } -static void +static void bfd_coff_swap_sym(abfd, se) bfd *abfd; SYMENT *se; @@ -138,7 +138,7 @@ bfd_coff_swap_sym(abfd, se) bfd_h_put_x(abfd, se->n_numaux, &se->n_numaux); } -static void +static void bfd_coff_swap_aux(abfd, au, type, class) bfd *abfd; AUXENT *au; @@ -184,7 +184,7 @@ bfd_coff_swap_aux(abfd, au, type, class) } } -static void +static void bfd_coff_swap_lineno(abfd, lineno) bfd *abfd; LINENO *lineno; @@ -206,7 +206,7 @@ get_index(symbol) return (int) symbol->value; } -static void +static void set_index(symbol, idx) asymbol *symbol; unsigned int idx; @@ -318,7 +318,7 @@ coff_real_object_p(abfd, nscns, opthdr) } if (bfd_seek(abfd, 0L, SEEK_SET) < 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; filehdr = (struct filehdr *) file_info; 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)) abfd->flags |= HAS_LOCALS; - abfd->tdata = (void *) tdata; + abfd->tdata = (PTR) tdata; bfd_get_symcount(abfd) = filehdr->f_nsyms; if (filehdr->f_nsyms) abfd->flags |= HAS_SYMS; @@ -437,7 +437,7 @@ coff_symbol_from(abfd, symbol) if (symbol->the_bfd->xvec->flavour != bfd_target_coff_flavour_enum) 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 *) symbol; @@ -455,7 +455,7 @@ coff_object_p(abfd) bfd_error = system_call_error; /* 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; magic = bfd_h_getshort(abfd, (bfd_byte *) (&magic)); @@ -464,13 +464,13 @@ coff_object_p(abfd) bfd_error = wrong_format; 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; nscns = bfd_h_getshort(abfd, (unsigned char *) &nscns); if (bfd_seek(abfd, (file_ptr) & (((struct filehdr *) NULL)->f_opthdr), SEEK_SET) < 0) 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; opthdr = bfd_h_getshort(abfd, (unsigned char *) &opthdr); @@ -491,7 +491,7 @@ coff_mkobject(abfd) bfd_error = no_memory; return false; } - abfd->tdata = (void *) ((struct icofdata *) rawptr); + abfd->tdata = (PTR) ((struct icofdata *) rawptr); exec_hdr(abfd) = (AOUTHDR *) (rawptr + sizeof(struct icofdata)); obj_relocbase(abfd) =0; return true; @@ -499,7 +499,7 @@ coff_mkobject(abfd) -static void +static void coff_count_linenumbers(abfd) bfd *abfd; { @@ -598,7 +598,7 @@ applied so we can dig it out through a pointer. */ -static void +static void coff_mangle_symbols(bfd_ptr) bfd *bfd_ptr; { @@ -774,7 +774,7 @@ bfd *bfd_ptr; -static void +static void coff_write_symbols(abfd) bfd *abfd; { @@ -920,10 +920,10 @@ coff_write_symbols(abfd) int type = native->n_type; int class = native->n_sclass; 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++) { 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) { unsigned int size = string_size + 4; 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++) { asymbol *q = *p; size_t name_length = strlen(q->name); 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,13 +958,13 @@ coff_write_symbols(abfd) uint32e_type size = 4; bfd_h_put_x(abfd, size, &size); - bfd_write((void *)&size, 1, sizeof(size), abfd); + bfd_write((PTR)&size, 1, sizeof(size), abfd); } } -static void +static void coff_write_relocs(abfd) bfd *abfd; { @@ -981,11 +981,11 @@ coff_write_relocs(abfd) n.r_symndx = get_index((*(q->sym_ptr_ptr))); n.r_type = q->howto->type; swap_reloc(abfd, &n); - bfd_write((void *) &n, 1, RELSZ, abfd); + bfd_write((PTR) &n, 1, RELSZ, abfd); } } } -static void +static void coff_write_linenumbers(abfd) bfd *abfd; { @@ -1001,17 +1001,17 @@ coff_write_linenumbers(abfd) if (l) { /* Found a linenumber entry, output */ struct lineno out; - bzero( &out, sizeof(out)); + bzero( (PTR)&out, sizeof(out)); out.l_lnno = 0; out.l_addr.l_symndx = l->u.offset; bfd_coff_swap_lineno(abfd, &out); - bfd_write((void *) &out, 1, LINESZ, abfd); + bfd_write((PTR) &out, 1, LINESZ, abfd); l++; while (l->line_number) { out.l_lnno = l->line_number; out.l_addr.l_symndx = l->u.offset; bfd_coff_swap_lineno(abfd, &out); - bfd_write((void *) &out, 1, LINESZ, abfd); + bfd_write((PTR) &out, 1, LINESZ, abfd); l++; } } @@ -1037,7 +1037,7 @@ coff_make_empty_symbol(abfd) return &new->symbol; } -static void +static void coff_print_symbol(ignore_abfd, file, symbol, how) bfd *ignore_abfd; FILE *file; @@ -1056,7 +1056,7 @@ coff_print_symbol(ignore_abfd, file, symbol, how) { char *section_name = symbol->section == (asection *) NULL ? "*abs" : symbol->section->name; - bfd_print_symbol_vandf((void *) file, symbol); + bfd_print_symbol_vandf((PTR) file, symbol); fprintf(file, " %-5s %s %s %s", section_name, @@ -1167,7 +1167,7 @@ coff_set_arch_mach(abfd, arch, machine) /* Calculate the file position for each section. */ -static void +static void coff_compute_section_file_positions(abfd) bfd *abfd; { @@ -1338,7 +1338,7 @@ coff_write_object_contents(abfd) #endif swap_scnhdr(abfd, §ion); - bfd_write((void *) (§ion), 1, SCNHSZ, abfd); + bfd_write((PTR) (§ion), 1, SCNHSZ, abfd); pad = 0; } @@ -1440,11 +1440,11 @@ coff_write_object_contents(abfd) if (bfd_seek(abfd, 0L, SEEK_SET) != 0) return false; - bfd_write((void *) &file_header, 1, FILHSZ, abfd); + bfd_write((PTR) &file_header, 1, FILHSZ, abfd); 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; } @@ -1455,7 +1455,7 @@ static boolean coff_set_section_contents(abfd, section, location, offset, count) bfd *abfd; sec_ptr section; - void *location; + PTR location; file_ptr offset; size_t count; { @@ -1473,7 +1473,7 @@ static boolean coff_get_section_contents(abfd, section, location, offset, count) bfd *abfd; sec_ptr section; - void *location; + PTR location; file_ptr offset; int count; { @@ -1521,28 +1521,28 @@ coff_close_and_cleanup(abfd) -static void * +static PTR buy_and_read(abfd, where, seek_direction, size) bfd *abfd; file_ptr where; int seek_direction; size_t size; { - void *area = (void *) malloc(size); - if (!area) { - bfd_error = no_memory; - return (NULL); - } - bfd_seek(abfd, where, seek_direction); - if (bfd_read(area, 1, size, abfd) != size) { - bfd_error = system_call_error; - free(area); - return (NULL); - } /* on error */ - return (area); + PTR area = (PTR) malloc(size); + if (!area) { + bfd_error = no_memory; + return (NULL); + } + bfd_seek(abfd, where, seek_direction); + if (bfd_read(area, 1, size, abfd) != size) { + bfd_error = system_call_error; + free(area); + return (NULL); + } /* on error */ + return (area); } /* buy_and_read() */ -static void +static void offset_symbol_indices(symtab, count, offset) SYMENT *symtab; unsigned long count; @@ -1598,7 +1598,7 @@ offset_symbol_indices(symtab, count, offset) return; } /* offset_symbol_indices() */ /* swap the entire symbol table */ -static void +static void swap_raw_symtab(abfd, raw_symtab) bfd *abfd; SYMENT *raw_symtab; @@ -2004,7 +2004,7 @@ find_next_file_symbol(current, end) Note that C_FILE symbols can, and some do, have more than 1 aux entry. */ -static void +static void force_indices_file_symbol_relative(abfd, symtab) bfd *abfd; SYMENT *symtab; @@ -2316,7 +2316,7 @@ coff_slurp_reloc_table(abfd, asect, symbols) */ if (ptr->the_bfd == abfd && ptr->section != (asection *) NULL) { - cache_ptr->addend = -ptr->section->vma; + cache_ptr->addend = -(ptr->section->vma + ptr->value); } else { cache_ptr->addend = 0; diff --git a/bfd/obstack.h b/bfd/obstack.h index 0f3b37c4e0..a4898ec1a0 100755 --- a/bfd/obstack.h +++ b/bfd/obstack.h @@ -108,11 +108,11 @@ Summary: may ignore the byte-within-word field of the pointer. */ #ifndef __PTR_TO_INT -#define __PTR_TO_INT(P) ((P) - (char *)0) +#define __PTR_TO_INT(P) ((P) - (char*)0) #endif #ifndef __INT_TO_PTR -#define __INT_TO_PTR(P) ((P) + (char *)0) +#define __INT_TO_PTR(P) ((P) + (char*)0) #endif struct _obstack_chunk /* Lives at front of each chunk. */ @@ -131,11 +131,8 @@ struct obstack /* control current object in current chunk */ char *chunk_limit; /* address of char after current chunk */ int temp; /* Temporary for some macros. */ int alignment_mask; /* Mask of alignment for each object. */ -#ifdef __STDC__ - void *(*chunkfun) (); /* User's fcn to allocate a chunk. */ -#else - char *(*chunkfun) (); /* User's fcn to allocate a chunk. */ -#endif + + PTR(*chunkfun) (); /* User's fcn to allocate a chunk. */ void (*freefun) (); /* User's function to free a chunk. */ };