29 lines
1.0 KiB
Diff
29 lines
1.0 KiB
Diff
|
Compatibility with: linux-2.6-elf-core-sysctl.patch
|
||
|
fs.binfmt_elf.core_dump_elf_headers=1
|
||
|
|
||
|
--- ./bfd/elf.c 18 Jul 2007 11:23:37 -0000 1.399
|
||
|
+++ ./bfd/elf.c 22 Jul 2007 11:45:33 -0000
|
||
|
@@ -2592,6 +2592,11 @@ _bfd_elf_new_section_hook (bfd *abfd, as
|
||
|
by the difference between the two sizes. In effect, the segment is split
|
||
|
into it's initialized and uninitialized parts.
|
||
|
|
||
|
+ Meaning of files size different than the memory size is different for core
|
||
|
+ files by Linux kernel with its fs.binfmt_elf.core_dump_elf_headers = 1.
|
||
|
+ Missing memory data should be fetched there from the readonly segments of
|
||
|
+ the executable file.
|
||
|
+
|
||
|
*/
|
||
|
|
||
|
bfd_boolean
|
||
|
@@ -2606,8 +2611,8 @@ _bfd_elf_make_section_from_phdr (bfd *ab
|
||
|
size_t len;
|
||
|
int split;
|
||
|
|
||
|
- split = ((hdr->p_memsz > 0)
|
||
|
- && (hdr->p_filesz > 0)
|
||
|
+ split = (abfd->format != bfd_core
|
||
|
+ && (hdr->p_memsz > 0) && (hdr->p_filesz > 0)
|
||
|
&& (hdr->p_memsz > hdr->p_filesz));
|
||
|
sprintf (namebuf, "%s%d%s", typename, index, split ? "a" : "");
|
||
|
len = strlen (namebuf) + 1;
|