Hello, The attached adds a really simple BFD "target" and is used: bfd = bfd_open.. (...); targ = target_bfd_reopen (bfd) ... operation involving targ ... target_close (targ, 0); Looking at solib-svr4, this object makes it possible to change this: load_addr = read_pc () - tmp_bfd->start_address; into this: load_addr = (read_pc () - gdbarch_convert_from_func_ptr_addr (current_gdbarch, bfd_get_start_address (tmp_bfd), tmp_bfd_target)); i.e., pointer conversion is performed using the original executable and not the running program. Something needed to fix PPC64 needs. thoughts? I'll look to commit this in a few days, Andrew