> On Thu, 2014-04-24 at 14:23 +0200, Florian Weimer wrote: > > Do you want me to resubmit the final part concerning libdwfl? > > No, thanks. I am experimenting with that patch and changed it to use the > Dwfl find_debuginfo callback to locate the altlink file so that the user > can override the search strategy (and put all resources in the Dwfl so > the free_alt flag in libdw is unnecessary). > > I'll post the modified patch when I get it working properly and have it > rebased against your work again.
Sorry, that took longer than anticipated. What I ended up with is your original patch to Move .gnu_debugaltlink handling from libdw to libdwfl. And then I added 3 additional patches on top of it: - libdwelf: Add dwelf_elf_gnu_build_id. - libdwfl: Move dwz alt multi file searching to find_debuginfo. - Remove --enable-dwz. dwz alt debug is no longer experimental. That should make it easier to see what changes were really made. The real change is the "libdwfl: Move dwz alt multi file searching to find_debuginfo." one. That makes it so that the standard callbacks dwfl_build_id_find_debuginfo and dwfl_standard_find_debuginfo will now try to resolve and set the alternative debug file depending on the given debuginfo_path. When using the build-id it works exactly as finding the separate debug file since an alt file is exactly like that. When using a path based lookup with the default path it will look in the directory of the main or debug file and under /usr/lib/debug/.dwz. But the user can of course adjust the debuginfo_path or provide its own find_debuginfo callback. It was tested against systemtap which has a non-trivial find_debuginfo callback and it works completely unchanged. Finally I made --enable-dwz the default and removed the EXPERIMENTAL marker. All patches are on the mjw/dwelf branch and I'll post them as follow-ups to this message. The first 6 have already been discussed a couple of times on the list. Let me know if there are any concerns with the last 3 or with pushing the whole branch to master. Thanks, Mark
