[PATCH] bfd/elf32-or1k: fix building with gcc version < 5
Giulio Benetti
giulio.benetti@benettiengineering.com
Wed Jun 9 21:53:20 GMT 2021
Hi Stafford,
On 6/9/21 11:44 PM, Stafford Horne wrote:
> On Wed, Jun 09, 2021 at 05:30:59PM +0200, Giulio Benetti wrote:
>> Gcc version >= 5 has standard C mode not set to -std=gnu11, so if we use
>> an old compiler(i.e. gcc 4.9) build fails on:
>> ```
>> elf32-or1k.c:2251:3: error: 'for' loop initial declarations are only allowed in
>> C99 or C11 mode
>> for (size_t i = 0; i < insn_count; i++)
>> ^
>> ```
>>
>> So let's declare `size_t i` at the top of the function instead of inside
>> for loop.
>
> This looks ok to me. Can you also include the changelog entry needed for
> binutils patches?
>
> Something like:
>
> bfd/ChangeLog:
>
> * elf32-or1k.c (or1k_write_plt_entry): Move i declaration to top of
> function.
Sure, this it the first time I send a patch for binutils. I've just sent
the v2.
Best regards
--
Giulio Benetti
Benetti Engineering sas
>> Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
>> ---
>> bfd/elf32-or1k.c | 5 +++--
>> 1 file changed, 3 insertions(+), 2 deletions(-)
>>
>> diff --git a/bfd/elf32-or1k.c b/bfd/elf32-or1k.c
>> index 4ae7f324d33..32063ab0289 100644
>> --- a/bfd/elf32-or1k.c
>> +++ b/bfd/elf32-or1k.c
>> @@ -2244,9 +2244,10 @@ or1k_write_plt_entry (bfd *output_bfd, bfd_byte *contents, unsigned insnj,
>> {
>> unsigned nodelay = elf_elfheader (output_bfd)->e_flags & EF_OR1K_NODELAY;
>> unsigned output_insns[PLT_MAX_INSN_COUNT];
>> + size_t i;
>>
>> /* Copy instructions into the output buffer. */
>> - for (size_t i = 0; i < insn_count; i++)
>> + for (i = 0; i < insn_count; i++)
>> output_insns[i] = insns[i];
>>
>> /* Honor the no-delay-slot setting. */
>> @@ -2277,7 +2278,7 @@ or1k_write_plt_entry (bfd *output_bfd, bfd_byte *contents, unsigned insnj,
>> }
>>
>> /* Write out the output buffer. */
>> - for (size_t i = 0; i < (insn_count+1); i++)
>> + for (i = 0; i < (insn_count+1); i++)
>> bfd_put_32 (output_bfd, output_insns[i], contents + (i*4));
>> }
>>
>> --
>> 2.25.1
>>
More information about the Binutils
mailing list