X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=bfd%2Fi386lynx.c;h=e5aa6f31bd3d633c5ded5ed5dcad68263ca94beb;hb=0b99131d48925b260f109613aba933abe711e90b;hp=8cffd24235b70388d1690830a7cd3978fa004caa;hpb=dc1e8a474f904419abaa27da4be5b0f735a87255;p=binutils-gdb.git diff --git a/bfd/i386lynx.c b/bfd/i386lynx.c index 8cffd24235b..e5aa6f31bd3 100644 --- a/bfd/i386lynx.c +++ b/bfd/i386lynx.c @@ -1,5 +1,5 @@ /* BFD back-end for i386 a.out binaries under LynxOS. - Copyright (C) 1990-2020 Free Software Foundation, Inc. + Copyright (C) 1990-2022 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -51,29 +51,29 @@ if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0 \ || bfd_bwrite (&exec_bytes, (bfd_size_type) EXEC_BYTES_SIZE, \ abfd) != EXEC_BYTES_SIZE) \ - return FALSE; \ + return false; \ /* Now write out reloc info, followed by syms and strings */ \ \ if (bfd_get_symcount (abfd) != 0) \ { \ if (bfd_seek (abfd, (file_ptr) (N_SYMOFF (execp)), SEEK_SET) \ != 0) \ - return FALSE; \ + return false; \ \ - if (! NAME(aout,write_syms) (abfd)) return FALSE; \ + if (! NAME(aout,write_syms) (abfd)) return false; \ \ if (bfd_seek (abfd, (file_ptr) (N_TRELOFF (execp)), SEEK_SET) \ != 0) \ - return FALSE; \ + return false; \ \ if (!NAME(lynx,squirt_out_relocs) (abfd, obj_textsec (abfd))) \ - return FALSE; \ + return false; \ if (bfd_seek (abfd, (file_ptr) (N_DRELOFF (execp)), SEEK_SET) \ != 0) \ return 0; \ \ if (!NAME(lynx,squirt_out_relocs) (abfd, obj_datasec (abfd))) \ - return FALSE; \ + return false; \ } \ } #endif @@ -86,7 +86,7 @@ char *lynx_core_file_failing_command (); int lynx_core_file_failing_signal (); -bfd_boolean lynx_core_file_matches_executable_p (); +bool lynx_core_file_matches_executable_p (); const bfd_target *lynx_core_file_p (); #define MY_core_file_failing_command lynx_core_file_failing_command @@ -282,38 +282,40 @@ NAME(lynx,swap_ext_reloc_out) (bfd *abfd, #define MOVE_ADDRESS(ad) \ if (r_extern) \ { \ - /* undefined symbol */ \ - cache_ptr->sym_ptr_ptr = symbols + r_index; \ - cache_ptr->addend = ad; \ + /* undefined symbol */ \ + if (r_index < bfd_get_symcount (abfd)) \ + cache_ptr->sym_ptr_ptr = symbols + r_index; \ + cache_ptr->addend = ad; \ } \ else \ { \ - /* defined, section relative. replace symbol with pointer to \ - symbol which points to section */ \ - switch (r_index) { \ - case N_TEXT: \ - case N_TEXT | N_EXT: \ - cache_ptr->sym_ptr_ptr = obj_textsec(abfd)->symbol_ptr_ptr; \ - cache_ptr->addend = ad - su->textsec->vma; \ - break; \ - case N_DATA: \ - case N_DATA | N_EXT: \ - cache_ptr->sym_ptr_ptr = obj_datasec(abfd)->symbol_ptr_ptr; \ - cache_ptr->addend = ad - su->datasec->vma; \ - break; \ - case N_BSS: \ - case N_BSS | N_EXT: \ - cache_ptr->sym_ptr_ptr = obj_bsssec(abfd)->symbol_ptr_ptr; \ - cache_ptr->addend = ad - su->bsssec->vma; \ - break; \ - default: \ - case N_ABS: \ - case N_ABS | N_EXT: \ - cache_ptr->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr; \ - cache_ptr->addend = ad; \ - break; \ + /* defined, section relative. replace symbol with pointer to \ + symbol which points to section */ \ + switch (r_index) \ + { \ + case N_TEXT: \ + case N_TEXT | N_EXT: \ + cache_ptr->sym_ptr_ptr = obj_textsec(abfd)->symbol_ptr_ptr; \ + cache_ptr->addend = ad - su->textsec->vma; \ + break; \ + case N_DATA: \ + case N_DATA | N_EXT: \ + cache_ptr->sym_ptr_ptr = obj_datasec(abfd)->symbol_ptr_ptr; \ + cache_ptr->addend = ad - su->datasec->vma; \ + break; \ + case N_BSS: \ + case N_BSS | N_EXT: \ + cache_ptr->sym_ptr_ptr = obj_bsssec(abfd)->symbol_ptr_ptr; \ + cache_ptr->addend = ad - su->bsssec->vma; \ + break; \ + default: \ + case N_ABS: \ + case N_ABS | N_EXT: \ + cache_ptr->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr; \ + cache_ptr->addend = ad; \ + break; \ + } \ } \ - } \ static void NAME(lynx,swap_ext_reloc_in) (bfd *abfd, @@ -322,7 +324,7 @@ NAME(lynx,swap_ext_reloc_in) (bfd *abfd, asymbol **symbols, bfd_size_type symcount ATTRIBUTE_UNUSED) { - int r_index; + unsigned int r_index; int r_extern; unsigned int r_type; struct aoutdata *su = &(abfd->tdata.aout_data->a); @@ -345,7 +347,7 @@ NAME(lynx,swap_std_reloc_in) (bfd *abfd, asymbol **symbols, bfd_size_type symcount ATTRIBUTE_UNUSED) { - int r_index; + unsigned int r_index; int r_extern; unsigned int r_length; int r_pcrel; @@ -367,7 +369,7 @@ NAME(lynx,swap_std_reloc_in) (bfd *abfd, /* Reloc hackery */ -static bfd_boolean +static bool NAME(lynx,slurp_reloc_table) (bfd *abfd, sec_ptr asect, asymbol **symbols) @@ -379,10 +381,10 @@ NAME(lynx,slurp_reloc_table) (bfd *abfd, size_t each_size; if (asect->relocation) - return TRUE; + return true; if (asect->flags & SEC_CONSTRUCTOR) - return TRUE; + return true; if (asect == obj_datasec (abfd)) { @@ -397,11 +399,11 @@ NAME(lynx,slurp_reloc_table) (bfd *abfd, } bfd_set_error (bfd_error_invalid_operation); - return FALSE; + return false; doit: if (bfd_seek (abfd, asect->rel_filepos, SEEK_SET) != 0) - return FALSE; + return false; each_size = obj_reloc_entry_size (abfd); count = reloc_size / each_size; @@ -409,13 +411,13 @@ NAME(lynx,slurp_reloc_table) (bfd *abfd, reloc_cache = (arelent *) bfd_zmalloc (count * sizeof (arelent)); if (!reloc_cache && count != 0) - return FALSE; + return false; relocs = _bfd_alloc_and_read (abfd, reloc_size, reloc_size); if (!relocs && reloc_size != 0) { free (reloc_cache); - return FALSE; + return false; } if (each_size == RELOC_EXT_SIZE) @@ -447,14 +449,14 @@ NAME(lynx,slurp_reloc_table) (bfd *abfd, bfd_release (abfd, relocs); asect->relocation = reloc_cache; asect->reloc_count = count; - return TRUE; + return true; } /* Write out a relocation section into an object file. */ -static bfd_boolean +static bool NAME(lynx,squirt_out_relocs) (bfd *abfd, asection *section) { arelent **generic; @@ -464,14 +466,14 @@ NAME(lynx,squirt_out_relocs) (bfd *abfd, asection *section) bfd_size_type natsize; if (count == 0) - return TRUE; + return true; each_size = obj_reloc_entry_size (abfd); natsize = count; natsize *= each_size; native = (unsigned char *) bfd_zalloc (abfd, natsize); if (!native) - return FALSE; + return false; generic = section->orelocation; @@ -493,11 +495,11 @@ NAME(lynx,squirt_out_relocs) (bfd *abfd, asection *section) if (bfd_bwrite (native, natsize, abfd) != natsize) { bfd_release (abfd, native); - return FALSE; + return false; } bfd_release (abfd, native); - return TRUE; + return true; } /* This is stupid. This function should be a boolean predicate */