2001-01-04 Kazu Hirata <kazu@hxi.com>

* som.c: Fix formatting.
This commit is contained in:
Kazu Hirata
2001-01-04 23:27:08 +00:00
parent 9dcb560c82
commit 7eae7d229a
2 changed files with 217 additions and 222 deletions

View File

@@ -1,3 +1,7 @@
2001-01-04 Kazu Hirata <kazu@hxi.com>
* som.c: Fix formatting.
2001-01-03 Kazu Hirata <kazu@hxi.com> 2001-01-03 Kazu Hirata <kazu@hxi.com>
* ecoffswap.h: Fix formatting. * ecoffswap.h: Fix formatting.

147
bfd/som.c
View File

@@ -110,17 +110,15 @@
Note one side effect of using a R_PREV_FIXUP is the relocation that Note one side effect of using a R_PREV_FIXUP is the relocation that
is being repeated moves to the front of the queue. */ is being repeated moves to the front of the queue. */
struct reloc_queue struct reloc_queue {
{
unsigned char *reloc; unsigned char *reloc;
unsigned int size; unsigned int size;
} reloc_queue[4]; } reloc_queue[4];
/* This fully describes the symbol types which may be attached to /* This fully describes the symbol types which may be attached to
an EXPORT or IMPORT directive. Only SOM uses this formation an EXPORT or IMPORT directive. Only SOM uses this formation
(ELF has no need for it). */ (ELF has no need for it). */
typedef enum typedef enum {
{
SYMBOL_TYPE_UNKNOWN, SYMBOL_TYPE_UNKNOWN,
SYMBOL_TYPE_ABSOLUTE, SYMBOL_TYPE_ABSOLUTE,
SYMBOL_TYPE_CODE, SYMBOL_TYPE_CODE,
@@ -132,16 +130,14 @@ typedef enum
SYMBOL_TYPE_SEC_PROG, SYMBOL_TYPE_SEC_PROG,
} pa_symbol_type; } pa_symbol_type;
struct section_to_type struct section_to_type {
{
char *section; char *section;
char type; char type;
}; };
/* Assorted symbol information that needs to be derived from the BFD symbol /* Assorted symbol information that needs to be derived from the BFD symbol
and/or the BFD backend private symbol data. */ and/or the BFD backend private symbol data. */
struct som_misc_symbol_info struct som_misc_symbol_info {
{
unsigned int symbol_type; unsigned int symbol_type;
unsigned int symbol_scope; unsigned int symbol_scope;
unsigned int arg_reloc; unsigned int arg_reloc;
@@ -379,14 +375,12 @@ static const struct section_to_type stt[] = {
addil foo-$global$-0x1234 would use an override for "0x1234" rather addil foo-$global$-0x1234 would use an override for "0x1234" rather
than storing it into the addil itself. */ than storing it into the addil itself. */
struct fixup_format struct fixup_format {
{
int D; int D;
const char *format; const char *format;
}; };
static const struct fixup_format som_fixup_formats[256] = static const struct fixup_format som_fixup_formats[256] = {
{
/* R_NO_RELOCATION */ /* R_NO_RELOCATION */
0, "LD1+4*=", /* 0x00 */ 0, "LD1+4*=", /* 0x00 */
1, "LD1+4*=", /* 0x01 */ 1, "LD1+4*=", /* 0x01 */
@@ -699,8 +693,7 @@ static const struct fixup_format som_fixup_formats[256] =
0, "", /* 0xff */ 0, "", /* 0xff */
}; };
static const int comp1_opcodes[] = static const int comp1_opcodes[] = {
{
0x00, 0x00,
0x40, 0x40,
0x41, 0x41,
@@ -721,8 +714,7 @@ static const int comp1_opcodes[] =
-1 -1
}; };
static const int comp2_opcodes[] = static const int comp2_opcodes[] = {
{
0x00, 0x00,
0x80, 0x80,
0x82, 0x82,
@@ -730,8 +722,7 @@ static const int comp2_opcodes[] =
-1 -1
}; };
static const int comp3_opcodes[] = static const int comp3_opcodes[] = {
{
0x00, 0x00,
0x02, 0x02,
-1 -1
@@ -787,8 +778,7 @@ static const int comp3_opcodes[] =
#define SOM_HOWTO(TYPE, NAME) \ #define SOM_HOWTO(TYPE, NAME) \
HOWTO(TYPE, 0, 0, 32, false, 0, 0, hppa_som_reloc, NAME, false, 0, 0, false) HOWTO(TYPE, 0, 0, 32, false, 0, 0, hppa_som_reloc, NAME, false, 0, 0, false)
static reloc_howto_type som_hppa_howto_table[] = static reloc_howto_type som_hppa_howto_table[] = {
{
SOM_HOWTO (R_NO_RELOCATION, "R_NO_RELOCATION"), SOM_HOWTO (R_NO_RELOCATION, "R_NO_RELOCATION"),
SOM_HOWTO (R_NO_RELOCATION, "R_NO_RELOCATION"), SOM_HOWTO (R_NO_RELOCATION, "R_NO_RELOCATION"),
SOM_HOWTO (R_NO_RELOCATION, "R_NO_RELOCATION"), SOM_HOWTO (R_NO_RELOCATION, "R_NO_RELOCATION"),
@@ -1044,7 +1034,8 @@ static reloc_howto_type som_hppa_howto_table[] =
SOM_HOWTO (R_RESERVED, "R_RESERVED"), SOM_HOWTO (R_RESERVED, "R_RESERVED"),
SOM_HOWTO (R_RESERVED, "R_RESERVED"), SOM_HOWTO (R_RESERVED, "R_RESERVED"),
SOM_HOWTO (R_RESERVED, "R_RESERVED"), SOM_HOWTO (R_RESERVED, "R_RESERVED"),
SOM_HOWTO (R_RESERVED, "R_RESERVED")}; SOM_HOWTO (R_RESERVED, "R_RESERVED")
};
/* Initialize the SOM relocation queue. By definition the queue holds /* Initialize the SOM relocation queue. By definition the queue holds
the last four multibyte fixups. */ the last four multibyte fixups. */
@@ -1579,10 +1570,10 @@ hppa_som_gen_reloc_type (abfd, base_type, format, field, sym_diff, sym)
/* The difference of two symbols needs *very* special handling. */ /* The difference of two symbols needs *very* special handling. */
if (sym_diff) if (sym_diff)
{ {
final_types[0] = (int *)bfd_alloc (abfd, sizeof (int)); final_types[0] = (int *) bfd_alloc (abfd, sizeof (int));
final_types[1] = (int *)bfd_alloc (abfd, sizeof (int)); final_types[1] = (int *) bfd_alloc (abfd, sizeof (int));
final_types[2] = (int *)bfd_alloc (abfd, sizeof (int)); final_types[2] = (int *) bfd_alloc (abfd, sizeof (int));
final_types[3] = (int *)bfd_alloc (abfd, sizeof (int)); final_types[3] = (int *) bfd_alloc (abfd, sizeof (int));
if (!final_types[0] || !final_types[1] || !final_types[2]) if (!final_types[0] || !final_types[1] || !final_types[2])
return NULL; return NULL;
if (field == e_fsel) if (field == e_fsel)
@@ -1659,10 +1650,10 @@ hppa_som_gen_reloc_type (abfd, base_type, format, field, sym_diff, sym)
/* The difference of two symbols needs *very* special handling. */ /* The difference of two symbols needs *very* special handling. */
if (sym_diff) if (sym_diff)
{ {
final_types[0] = (int *)bfd_alloc (abfd, sizeof (int)); final_types[0] = (int *) bfd_alloc (abfd, sizeof (int));
final_types[1] = (int *)bfd_alloc (abfd, sizeof (int)); final_types[1] = (int *) bfd_alloc (abfd, sizeof (int));
final_types[2] = (int *)bfd_alloc (abfd, sizeof (int)); final_types[2] = (int *) bfd_alloc (abfd, sizeof (int));
final_types[3] = (int *)bfd_alloc (abfd, sizeof (int)); final_types[3] = (int *) bfd_alloc (abfd, sizeof (int));
if (!final_types[0] || !final_types[1] || !final_types[2]) if (!final_types[0] || !final_types[1] || !final_types[2])
return NULL; return NULL;
if (field == e_fsel) if (field == e_fsel)
@@ -1716,7 +1707,6 @@ hppa_som_gen_reloc_type (abfd, base_type, format, field, sym_diff, sym)
/* Return the address of the correct entry in the PA SOM relocation /* Return the address of the correct entry in the PA SOM relocation
howto table. */ howto table. */
/*ARGSUSED*/
static reloc_howto_type * static reloc_howto_type *
som_bfd_reloc_type_lookup (abfd, code) som_bfd_reloc_type_lookup (abfd, code)
bfd *abfd ATTRIBUTE_UNUSED; bfd *abfd ATTRIBUTE_UNUSED;
@@ -1782,7 +1772,7 @@ som_object_setup (abfd, file_hdrp, aux_hdrp, current_offset)
/* Allocate space to hold the saved exec header information. */ /* Allocate space to hold the saved exec header information. */
obj_som_exec_data (abfd) = (struct som_exec_data *) obj_som_exec_data (abfd) = (struct som_exec_data *)
bfd_zalloc (abfd, sizeof (struct som_exec_data )); bfd_zalloc (abfd, sizeof (struct som_exec_data));
if (obj_som_exec_data (abfd) == NULL) if (obj_som_exec_data (abfd) == NULL)
return NULL; return NULL;
@@ -1856,7 +1846,7 @@ setup_sections (abfd, file_hdr, current_offset)
unsigned int total_subspaces = 0; unsigned int total_subspaces = 0;
asection **subspace_sections, *section; asection **subspace_sections, *section;
/* First, read in space names */ /* First, read in space names. */
space_strings = bfd_malloc (file_hdr->space_strings_size); space_strings = bfd_malloc (file_hdr->space_strings_size);
if (!space_strings && file_hdr->space_strings_size != 0) if (!space_strings && file_hdr->space_strings_size != 0)
@@ -1869,7 +1859,7 @@ setup_sections (abfd, file_hdr, current_offset)
!= file_hdr->space_strings_size) != file_hdr->space_strings_size)
goto error_return; goto error_return;
/* Loop over all of the space dictionaries, building up sections */ /* Loop over all of the space dictionaries, building up sections. */
for (space_index = 0; space_index < file_hdr->space_total; space_index++) for (space_index = 0; space_index < file_hdr->space_total; space_index++)
{ {
struct space_dictionary_record space; struct space_dictionary_record space;
@@ -1878,7 +1868,7 @@ setup_sections (abfd, file_hdr, current_offset)
asection *space_asect; asection *space_asect;
char *newname; char *newname;
/* Read the space dictionary element */ /* Read the space dictionary element. */
if (bfd_seek (abfd, if (bfd_seek (abfd,
(current_offset + file_hdr->space_location (current_offset + file_hdr->space_location
+ space_index * sizeof space), + space_index * sizeof space),
@@ -1887,10 +1877,10 @@ setup_sections (abfd, file_hdr, current_offset)
if (bfd_read (&space, 1, sizeof space, abfd) != sizeof space) if (bfd_read (&space, 1, sizeof space, abfd) != sizeof space)
goto error_return; goto error_return;
/* Setup the space name string */ /* Setup the space name string. */
space.name.n_name = space.name.n_strx + space_strings; space.name.n_name = space.name.n_strx + space_strings;
/* Make a section out of it */ /* Make a section out of it. */
newname = bfd_alloc (abfd, strlen (space.name.n_name) + 1); newname = bfd_alloc (abfd, strlen (space.name.n_name) + 1);
if (!newname) if (!newname)
goto error_return; goto error_return;
@@ -1913,7 +1903,7 @@ setup_sections (abfd, file_hdr, current_offset)
if (space.subspace_quantity == 0) if (space.subspace_quantity == 0)
continue; continue;
/* Now, read in the first subspace for this space */ /* Now, read in the first subspace for this space. */
if (bfd_seek (abfd, if (bfd_seek (abfd,
(current_offset + file_hdr->subspace_location (current_offset + file_hdr->subspace_location
+ space.subspace_index * sizeof subspace), + space.subspace_index * sizeof subspace),
@@ -1921,14 +1911,15 @@ setup_sections (abfd, file_hdr, current_offset)
goto error_return; goto error_return;
if (bfd_read (&subspace, 1, sizeof subspace, abfd) != sizeof subspace) if (bfd_read (&subspace, 1, sizeof subspace, abfd) != sizeof subspace)
goto error_return; goto error_return;
/* Seek back to the start of the subspaces for loop below */ /* Seek back to the start of the subspaces for loop below. */
if (bfd_seek (abfd, if (bfd_seek (abfd,
(current_offset + file_hdr->subspace_location (current_offset + file_hdr->subspace_location
+ space.subspace_index * sizeof subspace), + space.subspace_index * sizeof subspace),
SEEK_SET) < 0) SEEK_SET) < 0)
goto error_return; goto error_return;
/* Setup the start address and file loc from the first subspace record */ /* Setup the start address and file loc from the first subspace
record. */
space_asect->vma = subspace.subspace_start; space_asect->vma = subspace.subspace_start;
space_asect->filepos = subspace.file_loc_init_value + current_offset; space_asect->filepos = subspace.file_loc_init_value + current_offset;
space_asect->alignment_power = log2 (subspace.alignment); space_asect->alignment_power = log2 (subspace.alignment);
@@ -1939,18 +1930,18 @@ setup_sections (abfd, file_hdr, current_offset)
loop placed any useful values into it. */ loop placed any useful values into it. */
memset (&save_subspace, 0, sizeof (struct subspace_dictionary_record)); memset (&save_subspace, 0, sizeof (struct subspace_dictionary_record));
/* Loop over the rest of the subspaces, building up more sections */ /* Loop over the rest of the subspaces, building up more sections. */
for (subspace_index = 0; subspace_index < space.subspace_quantity; for (subspace_index = 0; subspace_index < space.subspace_quantity;
subspace_index++) subspace_index++)
{ {
asection *subspace_asect; asection *subspace_asect;
/* Read in the next subspace */ /* Read in the next subspace. */
if (bfd_read (&subspace, 1, sizeof subspace, abfd) if (bfd_read (&subspace, 1, sizeof subspace, abfd)
!= sizeof subspace) != sizeof subspace)
goto error_return; goto error_return;
/* Setup the subspace name string */ /* Setup the subspace name string. */
subspace.name.n_name = subspace.name.n_strx + space_strings; subspace.name.n_name = subspace.name.n_strx + space_strings;
newname = bfd_alloc (abfd, strlen (subspace.name.n_name) + 1); newname = bfd_alloc (abfd, strlen (subspace.name.n_name) + 1);
@@ -1958,7 +1949,7 @@ setup_sections (abfd, file_hdr, current_offset)
goto error_return; goto error_return;
strcpy (newname, subspace.name.n_name); strcpy (newname, subspace.name.n_name);
/* Make a section out of this subspace */ /* Make a section out of this subspace. */
subspace_asect = bfd_make_section_anyway (abfd, newname); subspace_asect = bfd_make_section_anyway (abfd, newname);
if (!subspace_asect) if (!subspace_asect)
goto error_return; goto error_return;
@@ -2165,7 +2156,7 @@ som_object_p (abfd)
#ifdef EXECLIBMAGIC #ifdef EXECLIBMAGIC
case EXECLIBMAGIC: case EXECLIBMAGIC:
/* Read the lst header and determine where the SOM directory begins */ /* Read the lst header and determine where the SOM directory begins. */
if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) < 0) if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) < 0)
{ {
@@ -2181,7 +2172,7 @@ som_object_p (abfd)
return 0; return 0;
} }
/* Position to and read the first directory entry */ /* Position to and read the first directory entry. */
if (bfd_seek (abfd, lst_header.dir_loc, SEEK_SET) < 0) if (bfd_seek (abfd, lst_header.dir_loc, SEEK_SET) < 0)
{ {
@@ -2197,7 +2188,7 @@ som_object_p (abfd)
return 0; return 0;
} }
/* Now position to the first SOM */ /* Now position to the first SOM. */
if (bfd_seek (abfd, som_entry.location, SEEK_SET) < 0) if (bfd_seek (abfd, som_entry.location, SEEK_SET) < 0)
{ {
@@ -2208,7 +2199,7 @@ som_object_p (abfd)
current_offset = som_entry.location; current_offset = som_entry.location;
/* And finally, re-read the som header */ /* And finally, re-read the som header. */
if (bfd_read ((PTR) & file_hdr, 1, FILE_HDR_SIZE, abfd) != FILE_HDR_SIZE) if (bfd_read ((PTR) & file_hdr, 1, FILE_HDR_SIZE, abfd) != FILE_HDR_SIZE)
{ {
@@ -2338,8 +2329,8 @@ som_prep_headers (abfd)
if (som_is_space (section)) if (som_is_space (section))
{ {
/* Allocate space for the space dictionary. */ /* Allocate space for the space dictionary. */
som_section_data (section)->space_dict som_section_data (section)->space_dict =
= (struct space_dictionary_record *) (struct space_dictionary_record *)
bfd_zalloc (abfd, sizeof (struct space_dictionary_record)); bfd_zalloc (abfd, sizeof (struct space_dictionary_record));
if (som_section_data (section)->space_dict == NULL) if (som_section_data (section)->space_dict == NULL)
return false; return false;
@@ -3283,7 +3274,7 @@ som_write_symbol_strings (abfd, current_offset, syms, num_syms, string_sizep,
/* Next comes the string itself + a null terminator. */ /* Next comes the string itself + a null terminator. */
strcpy (p, syms[i]->name); strcpy (p, syms[i]->name);
som_symbol_data(syms[i])->stringtab_offset = strings_size; som_symbol_data (syms[i])->stringtab_offset = strings_size;
p += length + 1; p += length + 1;
strings_size += length + 1; strings_size += length + 1;
@@ -3868,12 +3859,11 @@ som_finish_writing (abfd)
section = abfd->sections; section = abfd->sections;
for (i = 0; i < num_spaces; i++) for (i = 0; i < num_spaces; i++)
{ {
/* Find a space. */ /* Find a space. */
while (!som_is_space (section)) while (!som_is_space (section))
section = section->next; section = section->next;
/* Dump its header */ /* Dump its header. */
if (bfd_write ((PTR) som_section_data (section)->space_dict, if (bfd_write ((PTR) som_section_data (section)->space_dict,
sizeof (struct space_dictionary_record), 1, abfd) sizeof (struct space_dictionary_record), 1, abfd)
!= sizeof (struct space_dictionary_record)) != sizeof (struct space_dictionary_record))
@@ -3898,13 +3888,13 @@ som_finish_writing (abfd)
/* Setting of the system_id has to happen very late now that copying of /* Setting of the system_id has to happen very late now that copying of
BFD private data happens *after* section contents are set. */ BFD private data happens *after* section contents are set. */
if (abfd->flags & (EXEC_P | DYNAMIC)) if (abfd->flags & (EXEC_P | DYNAMIC))
obj_som_file_hdr(abfd)->system_id = obj_som_exec_data (abfd)->system_id; obj_som_file_hdr (abfd)->system_id = obj_som_exec_data (abfd)->system_id;
else if (bfd_get_mach (abfd) == pa20) else if (bfd_get_mach (abfd) == pa20)
obj_som_file_hdr(abfd)->system_id = CPU_PA_RISC2_0; obj_som_file_hdr (abfd)->system_id = CPU_PA_RISC2_0;
else if (bfd_get_mach (abfd) == pa11) else if (bfd_get_mach (abfd) == pa11)
obj_som_file_hdr(abfd)->system_id = CPU_PA_RISC1_1; obj_som_file_hdr (abfd)->system_id = CPU_PA_RISC1_1;
else else
obj_som_file_hdr(abfd)->system_id = CPU_PA_RISC1_0; obj_som_file_hdr (abfd)->system_id = CPU_PA_RISC1_0;
/* Compute the checksum for the file header just before writing /* Compute the checksum for the file header just before writing
the header to disk. */ the header to disk. */
@@ -4178,7 +4168,6 @@ som_write_object_contents (abfd)
return (som_finish_writing (abfd)); return (som_finish_writing (abfd));
} }
/* Read and save the string table associated with the given BFD. */ /* Read and save the string table associated with the given BFD. */
@@ -4574,7 +4563,7 @@ som_set_reloc_info (fixup, end, internal_relocs, section, symbols, just_count)
unsigned char *save_fixup; unsigned char *save_fixup;
int variables[26], stack[20], c, v, count, prev_fixup, *sp, saved_unwind_bits; int variables[26], stack[20], c, v, count, prev_fixup, *sp, saved_unwind_bits;
const int *subop; const int *subop;
arelent *rptr= internal_relocs; arelent *rptr = internal_relocs;
unsigned int offset = 0; unsigned int offset = 0;
#define var(c) variables[(c) - 'A'] #define var(c) variables[(c) - 'A']
@@ -4675,7 +4664,6 @@ som_set_reloc_info (fixup, end, internal_relocs, section, symbols, just_count)
push (v); push (v);
} }
else else
/* An operator. Pop two two values from the stack and /* An operator. Pop two two values from the stack and
use them as operands to the given operation. Push use them as operands to the given operation. Push
the result of the operation back on the stack. */ the result of the operation back on the stack. */
@@ -5036,7 +5024,7 @@ som_new_section_hook (abfd, newsect)
return false; return false;
newsect->alignment_power = 3; newsect->alignment_power = 3;
/* We allow more than three sections internally */ /* We allow more than three sections internally. */
return true; return true;
} }
@@ -5068,6 +5056,7 @@ som_bfd_copy_private_symbol_data (ibfd, isymbol, obfd, osymbol)
/* Copy any private info we understand from the input section /* Copy any private info we understand from the input section
to the output section. */ to the output section. */
static boolean static boolean
som_bfd_copy_private_section_data (ibfd, isection, obfd, osection) som_bfd_copy_private_section_data (ibfd, isection, obfd, osection)
bfd *ibfd; bfd *ibfd;
@@ -5081,8 +5070,8 @@ som_bfd_copy_private_section_data (ibfd, isection, obfd, osection)
|| (!som_is_space (isection) && !som_is_subspace (isection))) || (!som_is_space (isection) && !som_is_subspace (isection)))
return true; return true;
som_section_data (osection)->copy_data som_section_data (osection)->copy_data =
= (struct som_copyable_section_data_struct *) (struct som_copyable_section_data_struct *)
bfd_zalloc (obfd, sizeof (struct som_copyable_section_data_struct)); bfd_zalloc (obfd, sizeof (struct som_copyable_section_data_struct));
if (som_section_data (osection)->copy_data == NULL) if (som_section_data (osection)->copy_data == NULL)
return false; return false;
@@ -5138,8 +5127,8 @@ bfd_som_set_section_attributes (section, defined, private, sort_key, spnum)
/* Allocate memory to hold the magic information. */ /* Allocate memory to hold the magic information. */
if (som_section_data (section)->copy_data == NULL) if (som_section_data (section)->copy_data == NULL)
{ {
som_section_data (section)->copy_data som_section_data (section)->copy_data =
= (struct som_copyable_section_data_struct *) (struct som_copyable_section_data_struct *)
bfd_zalloc (section->owner, bfd_zalloc (section->owner,
sizeof (struct som_copyable_section_data_struct)); sizeof (struct som_copyable_section_data_struct));
if (som_section_data (section)->copy_data == NULL) if (som_section_data (section)->copy_data == NULL)
@@ -5168,8 +5157,8 @@ bfd_som_set_subsection_attributes (section, container, access,
/* Allocate memory to hold the magic information. */ /* Allocate memory to hold the magic information. */
if (som_section_data (section)->copy_data == NULL) if (som_section_data (section)->copy_data == NULL)
{ {
som_section_data (section)->copy_data som_section_data (section)->copy_data =
= (struct som_copyable_section_data_struct *) (struct som_copyable_section_data_struct *)
bfd_zalloc (section->owner, bfd_zalloc (section->owner,
sizeof (struct som_copyable_section_data_struct)); sizeof (struct som_copyable_section_data_struct));
if (som_section_data (section)->copy_data == NULL) if (som_section_data (section)->copy_data == NULL)
@@ -5198,6 +5187,7 @@ bfd_som_set_symbol_type (symbol, type)
/* Attach an auxiliary header to the BFD backend so that it may be /* Attach an auxiliary header to the BFD backend so that it may be
written into the object file. */ written into the object file. */
boolean boolean
bfd_som_attach_aux_hdr (abfd, type, string) bfd_som_attach_aux_hdr (abfd, type, string)
bfd *abfd; bfd *abfd;
@@ -5292,7 +5282,7 @@ som_get_section_contents (abfd, section, location, offset, count)
return true; return true;
if ((bfd_size_type) (offset+count) > section->_raw_size if ((bfd_size_type) (offset+count) > section->_raw_size
|| bfd_seek (abfd, (file_ptr) (section->filepos + offset), SEEK_SET) == -1 || bfd_seek (abfd, (file_ptr) (section->filepos + offset), SEEK_SET) == -1
|| bfd_read (location, (bfd_size_type)1, count, abfd) != count) || bfd_read (location, (bfd_size_type) 1, count, abfd) != count)
return (false); /* on error */ return (false); /* on error */
return (true); return (true);
} }
@@ -5339,7 +5329,7 @@ som_set_arch_mach (abfd, arch, machine)
enum bfd_architecture arch; enum bfd_architecture arch;
unsigned long machine; unsigned long machine;
{ {
/* Allow any architecture to be supported by the SOM backend */ /* Allow any architecture to be supported by the SOM backend. */
return bfd_default_set_arch_mach (abfd, arch, machine); return bfd_default_set_arch_mach (abfd, arch, machine);
} }
@@ -5397,7 +5387,7 @@ som_decode_symclass (symbol)
return 'I'; return 'I';
if (symbol->flags & BSF_WEAK) if (symbol->flags & BSF_WEAK)
return 'W'; return 'W';
if (!(symbol->flags & (BSF_GLOBAL|BSF_LOCAL))) if (!(symbol->flags & (BSF_GLOBAL | BSF_LOCAL)))
return '?'; return '?';
if (bfd_is_abs_section (symbol->section) if (bfd_is_abs_section (symbol->section)
@@ -5423,7 +5413,7 @@ som_get_symbol_info (ignore_abfd, symbol, ret)
{ {
ret->type = som_decode_symclass (symbol); ret->type = som_decode_symclass (symbol);
if (ret->type != 'U') if (ret->type != 'U')
ret->value = symbol->value+symbol->section->vma; ret->value = symbol->value + symbol->section->vma;
else else
ret->value = 0; ret->value = 0;
ret->name = symbol->name; ret->name = symbol->name;
@@ -5650,6 +5640,7 @@ som_bfd_fill_in_ar_symbols (abfd, lst_header, syms)
} }
/* Read in the LST from the archive. */ /* Read in the LST from the archive. */
static boolean static boolean
som_slurp_armap (abfd) som_slurp_armap (abfd)
bfd *abfd; bfd *abfd;
@@ -5824,6 +5815,7 @@ som_bfd_prep_for_ar_write (abfd, num_syms, stringsize)
/* Hash a symbol name based on the hashing algorithm presented in the /* Hash a symbol name based on the hashing algorithm presented in the
SOM ABI. */ SOM ABI. */
static unsigned int static unsigned int
som_bfd_ar_symbol_hash (symbol) som_bfd_ar_symbol_hash (symbol)
asymbol *symbol; asymbol *symbol;
@@ -5835,7 +5827,7 @@ som_bfd_ar_symbol_hash (symbol)
return 0x1000100 | (symbol->name[0] << 16) | symbol->name[0]; return 0x1000100 | (symbol->name[0] << 16) | symbol->name[0];
return ((len & 0x7f) << 24) | (symbol->name[1] << 16) return ((len & 0x7f) << 24) | (symbol->name[1] << 16)
| (symbol->name[len-2] << 8) | symbol->name[len-1]; | (symbol->name[len - 2] << 8) | symbol->name[len - 1];
} }
/* Do the bulk of the work required to write the SOM library /* Do the bulk of the work required to write the SOM library
@@ -6027,7 +6019,7 @@ som_bfd_ar_write_symbol_stuff (abfd, nsyms, string_size, lst, elength)
p += 4; p += 4;
strcpy (p, sym->symbol.name); strcpy (p, sym->symbol.name);
p += strlen (sym->symbol.name) + 1; p += strlen (sym->symbol.name) + 1;
while ((int)p % 4) while ((int) p % 4)
{ {
bfd_put_8 (abfd, 0, p); bfd_put_8 (abfd, 0, p);
p++; p++;
@@ -6100,7 +6092,6 @@ som_bfd_ar_write_symbol_stuff (abfd, nsyms, string_size, lst, elength)
You'll never believe this is really how armaps are handled in SOM... */ You'll never believe this is really how armaps are handled in SOM... */
/*ARGSUSED*/
static boolean static boolean
som_write_armap (abfd, elength, map, orl_count, stridx) som_write_armap (abfd, elength, map, orl_count, stridx)
bfd *abfd; bfd *abfd;
@@ -6187,9 +6178,9 @@ som_write_armap (abfd, elength, map, orl_count, stridx)
/* Compute the checksum. Must happen after the entire lst header /* Compute the checksum. Must happen after the entire lst header
has filled in. */ has filled in. */
p = (int *)&lst; p = (int *) &lst;
lst.checksum = 0; lst.checksum = 0;
for (i = 0; i < sizeof (struct lst_header)/sizeof (int) - 1; i++) for (i = 0; i < sizeof (struct lst_header) / sizeof (int) - 1; i++)
lst.checksum ^= *p++; lst.checksum ^= *p++;
sprintf (hdr.ar_name, "/ "); sprintf (hdr.ar_name, "/ ");
@@ -6257,6 +6248,7 @@ som_bfd_free_cached_info (abfd)
/* End of miscellaneous support functions. */ /* End of miscellaneous support functions. */
/* Linker support functions. */ /* Linker support functions. */
static boolean static boolean
som_bfd_link_split_section (abfd, sec) som_bfd_link_split_section (abfd, sec)
bfd *abfd ATTRIBUTE_UNUSED; bfd *abfd ATTRIBUTE_UNUSED;
@@ -6294,8 +6286,7 @@ som_bfd_link_split_section (abfd, sec)
#define som_bfd_gc_sections bfd_generic_gc_sections #define som_bfd_gc_sections bfd_generic_gc_sections
const bfd_target som_vec = const bfd_target som_vec = {
{
"som", /* name */ "som", /* name */
bfd_target_som_flavour, bfd_target_som_flavour,
BFD_ENDIAN_BIG, /* target byte order */ BFD_ENDIAN_BIG, /* target byte order */