Revert "Do not overwrite so_list's so_name in solib_map_sections"
authorJoel Brobecker <brobecker@adacore.com>
Fri, 13 Dec 2013 17:21:37 +0000 (18:21 +0100)
committerJoel Brobecker <brobecker@adacore.com>
Sun, 15 Dec 2013 09:59:18 +0000 (10:59 +0100)
commitb030cf11d6572eea467acf0ead3dad9474431033
treee46d1c3d3a69857d9810d59c3699eaffff475136
parent07d100d43e70e856c802fec9b584f94c8efbd79d
Revert "Do not overwrite so_list's so_name in solib_map_sections"

This reverts commit 07293be44859c607a36c313e51bec2dcdcd3c243, as it
causes an unintended change of behavior with GDB/MI's =library-loaded
events: The host-name="<path>" part of the event is now showing the
target-side path instead of the host-side path.

This revert affects Darwin and AIX systems, however, where the BFD
is either artificial or icomplete, leading to the outputt of
"info shared" not containing the information we'd like. For instance,
on Darwin, we would see:

    (top-gdb) info shared
    From                To                  Syms Read   Shared Object Library
    0x00007fff8d060de4  0x00007fff8d09ce1f  Yes (*)     i386:x86-64
    0x00007fff8af08b10  0x00007fff8b1c6f73  Yes (*)     i386:x86-64

To compensate for that, we overwrite the filename of the associated bfd.

gdb/ChangeLog:

Revert the following commit:
* solib.c (solib_map_sections): Remove code overwriting
SO->SO_NAME with the bfd's filename.

Make the following changes required after the revert above:
* solib-aix.c (solib_aix_bfd_open): Set the filename of the
returned bfd to a copy of the synthetic pathname.
* solib-darwin.c (darwin_bfd_open): Set the filename of the
returned bfd to a copy of PATHNAME.
gdb/ChangeLog
gdb/solib-aix.c
gdb/solib-darwin.c
gdb/solib.c