Fix vDSO l_name for GDB's: Can't read pathname for load map: Input/output error.

This commit is contained in:
Jan Kratochvil 2013-11-11 18:03:58 +01:00
parent 450a2e2d19
commit 9182aa6799
2 changed files with 13 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2013-11-11 Jan Kratochvil <jan.kratochvil@redhat.com>
[BZ #387]
* elf/dl-object.c (_dl_new_object): Initialize L_NAME from NEWNAME if
it is empty.
2013-11-11 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
* benchtests/Makefile: Add bench-strtod.

View File

@ -88,7 +88,13 @@ _dl_new_object (char *realname, const char *libname, int type,
/* newname->next = NULL; We use calloc therefore not necessary. */
newname->dont_free = 1;
new->l_name = realname;
/* When we create the executable link map, or a VDSO link map, we start
with "" for the l_name. In these cases "" points to ld.so rodata
and won't get dumped during core file generation. Therefore to assist
gdb and to create more self-contained core files we adjust l_name to
point at the newly allocated copy (which will get dumped) instead of
the ld.so rodata copy. */
new->l_name = *realname ? realname : (char *) newname->name + libname_len - 1;
new->l_type = type;
/* If we set the bit now since we know it is never used we avoid
dirtying the cache line later. */