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]

Re: [ARM] global Thumb to ARM branches broken



I don't understand why your patch to md_pcrel_from_section does not
involve S_IS_EXTERNAL, while your patch to md_apply_fix does. Could you
explain it to me?

IIRC because md_pcrel_from_section is never called for an external unresolved reference or even if it is the base value should always be 0 ?

S_IS_EXTERNAL does not mean "external unresolved reference", and I am just adding test cases to cover these cases as well, which takes time. And as I am out of luck, now I have found a bug in objdump :-(




I think the solution would be that base in md_pcrel_from_section should not be reset when the 2 segments aren't the same i.e. each of the relocs should make sure that `base' is reset only for internal . I tried this patch and things worked with no regressions and it appeared to also fix your case.

Yes, my current patch is very similar, but adding tests to cover every line of new code takes time (especially as it triggers oddities or bugs elsewhere :-)

Christophe.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]