Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

add CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS

This adds a kconfig option to change the /proc/PID/coredump_filter default.
Fedora has been carrying a trivial patch to change the hard-wired value for
this default, since Fedora 8. The default default can't change safely
because there are old GDB versions out there (all before 6.7) that are
confused by the core dump files created by the MMF_DUMP_ELF_HEADERS setting.

Signed-off-by: Roland McGrath <roland@redhat.com>
Cc: Michael Kerrisk <mtk.manpages@googlemail.com>
Cc: Oleg Nesterov <oleg@tv-sign.ru>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: Andi Kleen <andi@firstfloor.org>
Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Cc: Kawai Hidehiro <hidehiro.kawai.ez@hitachi.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: David Jones <davej@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

authored by

Roland McGrath and committed by
Linus Torvalds
656eb2cd 6409324b

+29 -1
+22
fs/Kconfig.binfmt
··· 40 40 41 41 It is also possible to run FDPIC ELF binaries on MMU linux also. 42 42 43 + config CORE_DUMP_DEFAULT_ELF_HEADERS 44 + bool "Write ELF core dumps with partial segments" 45 + default n 46 + depends on BINFMT_ELF 47 + help 48 + ELF core dump files describe each memory mapping of the crashed 49 + process, and can contain or omit the memory contents of each one. 50 + The contents of an unmodified text mapping are omitted by default. 51 + 52 + For an unmodified text mapping of an ELF object, including just 53 + the first page of the file in a core dump makes it possible to 54 + identify the build ID bits in the file, without paying the i/o 55 + cost and disk space to dump all the text. However, versions of 56 + GDB before 6.7 are confused by ELF core dump files in this format. 57 + 58 + The core dump behavior can be controlled per process using 59 + the /proc/PID/coredump_filter pseudo-file; this setting is 60 + inherited. See Documentation/filesystems/proc.txt for details. 61 + 62 + This config option changes the default setting of coredump_filter 63 + seen at boot time. If unsure, say N. 64 + 43 65 config BINFMT_FLAT 44 66 bool "Kernel support for flat binaries" 45 67 depends on !MMU && (!FRV || BROKEN)
+7 -1
include/linux/sched.h
··· 411 411 (((1 << MMF_DUMP_FILTER_BITS) - 1) << MMF_DUMP_FILTER_SHIFT) 412 412 #define MMF_DUMP_FILTER_DEFAULT \ 413 413 ((1 << MMF_DUMP_ANON_PRIVATE) | (1 << MMF_DUMP_ANON_SHARED) |\ 414 - (1 << MMF_DUMP_HUGETLB_PRIVATE)) 414 + (1 << MMF_DUMP_HUGETLB_PRIVATE) | MMF_DUMP_MASK_DEFAULT_ELF) 415 + 416 + #ifdef CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS 417 + # define MMF_DUMP_MASK_DEFAULT_ELF (1 << MMF_DUMP_ELF_HEADERS) 418 + #else 419 + # define MMF_DUMP_MASK_DEFAULT_ELF 0 420 + #endif 415 421 416 422 struct sighand_struct { 417 423 atomic_t count;