| Index: bfd/srec.c
|
| diff --git a/bfd/srec.c b/bfd/srec.c
|
| index 6226773387252b3d4e9f5df43e832e5a937e9161..ded9e76ca28992e7d5bfd0ea6aa60c9136e7e09f 100644
|
| --- a/bfd/srec.c
|
| +++ b/bfd/srec.c
|
| @@ -870,6 +870,7 @@ srec_set_section_contents (bfd *abfd,
|
| file_ptr offset,
|
| bfd_size_type bytes_to_do)
|
| {
|
| + int opb = bfd_octets_per_byte (abfd);
|
| tdata_type *tdata = abfd->tdata.srec_data;
|
| srec_data_list_type *entry;
|
|
|
| @@ -892,16 +893,16 @@ srec_set_section_contents (bfd *abfd,
|
| regardless of the siez of the addresses. */
|
| if (S3Forced)
|
| tdata->type = 3;
|
| - else if ((section->lma + offset + bytes_to_do - 1) <= 0xffff)
|
| + else if ((section->lma + (offset + bytes_to_do) / opb - 1) <= 0xffff)
|
| ; /* The default, S1, is OK. */
|
| - else if ((section->lma + offset + bytes_to_do - 1) <= 0xffffff
|
| + else if ((section->lma + (offset + bytes_to_do) / opb - 1) <= 0xffffff
|
| && tdata->type <= 2)
|
| tdata->type = 2;
|
| else
|
| tdata->type = 3;
|
|
|
| entry->data = data;
|
| - entry->where = section->lma + offset;
|
| + entry->where = section->lma + offset / opb;
|
| entry->size = bytes_to_do;
|
|
|
| /* Sort the records by address. Optimize for the common case of
|
|
|