Fix missing "Core was generated by" when loading a x32 corefile.

This commit is contained in:
Felix Willgerodt
2023-02-27 13:01:06 +00:00
committed by Nick Clifton
parent 85b922fcdd
commit c38463074e
2 changed files with 19 additions and 2 deletions

View File

@ -1,3 +1,8 @@
2023-02-27 Felix Willgerodt <felix.willgerodt@intel.com>
* elf64-x86-64.c (elf_x86_64_grok_psinfo): Check for
elf_external_linux_prpsinfo32_ugid32.
2023-02-23 Fangrui Song <i@maskray.me> 2023-02-23 Fangrui Song <i@maskray.me>
* elfnn-riscv.c (struct riscv_elf_link_hash_table): Add params. * elfnn-riscv.c (struct riscv_elf_link_hash_table): Add params.

View File

@ -389,7 +389,8 @@ elf_x86_64_grok_psinfo (bfd *abfd, Elf_Internal_Note *note)
default: default:
return false; return false;
case 124: /* sizeof(struct elf_prpsinfo) on Linux/x32 */ case 124:
/* sizeof (struct elf_external_linux_prpsinfo32_ugid16). */
elf_tdata (abfd)->core->pid elf_tdata (abfd)->core->pid
= bfd_get_32 (abfd, note->descdata + 12); = bfd_get_32 (abfd, note->descdata + 12);
elf_tdata (abfd)->core->program elf_tdata (abfd)->core->program
@ -398,7 +399,18 @@ elf_x86_64_grok_psinfo (bfd *abfd, Elf_Internal_Note *note)
= _bfd_elfcore_strndup (abfd, note->descdata + 44, 80); = _bfd_elfcore_strndup (abfd, note->descdata + 44, 80);
break; break;
case 136: /* sizeof(struct elf_prpsinfo) on Linux/x86_64 */ case 128:
/* sizeof (struct elf_external_linux_prpsinfo32_ugid32). */
elf_tdata (abfd)->core->pid
= bfd_get_32 (abfd, note->descdata + 12);
elf_tdata (abfd)->core->program
= _bfd_elfcore_strndup (abfd, note->descdata + 32, 16);
elf_tdata (abfd)->core->command
= _bfd_elfcore_strndup (abfd, note->descdata + 48, 80);
break;
case 136:
/* sizeof (struct elf_prpsinfo) on Linux/x86_64. */
elf_tdata (abfd)->core->pid elf_tdata (abfd)->core->pid
= bfd_get_32 (abfd, note->descdata + 24); = bfd_get_32 (abfd, note->descdata + 24);
elf_tdata (abfd)->core->program elf_tdata (abfd)->core->program