This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
Hi,
Sorry, I miss the test case in the previous email.
So I resend this mail.
Kuan-Lin Chen <kuanlinchentw@gmail.com> 於 2020年1月6日 週一 下午4:18寫道:
>
> Hi,
>
> The patch is fixed some problems as your comments in previous mails.
>
> >The assumption that the uleb128 address size can only decrease with relaxation is true only if both addresses are in the same section.
> I found this kind of subtract is banned in cvt_frag_to_fill for
> rs_leb128. Therefore, it doesn't have to restrict by ourselves.
>
> Thanks for your reviews.
>
> Nelson Chu <nelson.chu@sifive.com> 於 2019年12月18日 週三 上午9:50寫道:
> >
> > There is one minor thing. Maciej has pointed out before that it's
> > better done with one the percent-codes to `_bfd_error_handler' rather
> > than aborting the link right away, so that any further link errors are
> > also reported and you don't have to shake them out one by one. So
> > report the relocation error via linker's callback function seems to be
> > better. I think maybe we can report a dangerous relocation for the
> > mismatched R_RISCV_SET_ULEB128 and R_RISCV_SUB_ULEB128. What I meant
> > is that,
> >
> > + case R_RISCV_SET_ULEB128:
> > ...
> > + else
> > + {
> > + if (uleb128_rel->r_offset != rel->r_offset)
> > + {
> > - (*_bfd_error_handler) (_("%pB: relocation %s mismatched. "),
> > - input_bfd, howto->name);
> > - bfd_set_error (bfd_error_bad_value);
> > + msg = ("R_RISCV_SET_ULEB128 and R_RISCV_SUB_ULEB128 are mismatched. ");
> > + r = bfd_reloc_dangerous;
> > + break;
> > + }
> > + relocation = relocation - uleb128_vma;
> > + uleb128_rel = NULL;
> > + break;
> > + }
> > +
> > + case R_RISCV_SUB_ULEB128:
> > + if (uleb128_rel)
> > + {
> > + if (uleb128_rel->r_offset != rel->r_offset)
> > + {
> > - (*_bfd_error_handler) (_("%pB: relocation %s mismatched. "),
> > - input_bfd, howto->name);
> > - bfd_set_error (bfd_error_bad_value);
> > + msg = ("R_RISCV_SET_ULEB128 and R_RISCV_SUB_ULEB128 are mismatched. ");
> > + r = bfd_reloc_dangerous;
> > + break;
> > + }
> > + relocation = uleb128_vma - relocation;
> > + uleb128_rel = NULL;
> > + break;
> > + }
> >
> > Thanks and regards
> > Nelson
>
>
>
> --
> Best regards,
> Kuan-Lin Chen.
> kuanlinchentw@gmail.com
--
Best regards,
Kuan-Lin Chen.
kuanlinchentw@gmail.com
Attachment:
0001-RISC-V-Support-subtraction-of-.uleb128.patch
Description: Binary data
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |