This is the mail archive of the binutils@sources.redhat.com 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: [RFA] Perform relocations in dwarf2.c


Daniel Berlin wrote:
 You shouldn't be casually deleting
code like this if you don't even know what platforms it is for.

The list archives would be glad to tell you.
He's also removing the checks for what the standard specifically says is the right thing.

If it doesn't work as is, something else is broken, as the code is correct.
It was related to these lines:

bfd/dwarf2.c (_bfd_dwarf2_find_nearest_line()):
1924 if (addr_size == 0)
1925 addr_size = 4;
1926 BFD_ASSERT (addr_size == 4 || addr_size == 8);

From bfd/elf.c (ie. on all platforms except arm, alpha and mips) this function is called with addr_size==0, it's then reinitialised to 4 - even on 64b systems. It's a little confusing to have addr_size==4 on x86-64, so I've "fixed" itby initialising to get_elf_backend_data(abfd)->s->arch_size/8 instead of 4 in case it was 0 before.

Then the rest ceased to work for me, because offset_size was initialized to addr_size, ie. 8 on 64b archs, but should have been 4 to let the .debug_info parser work.

Now I've reverted this change and will follow the rule: "don't fix it unless it's broken" :-))

Michal Ludvig
--
* SuSE CR, s.r.o * mludvig@suse.cz
* (+420) 296.545.373 * http://www.suse.cz


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