/* 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.
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
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
#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,
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);
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;
/* Reloc hackery */
-static bfd_boolean
+static bool
NAME(lynx,slurp_reloc_table) (bfd *abfd,
sec_ptr asect,
asymbol **symbols)
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))
{
}
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;
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)
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;
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;
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 */