add CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS
Roland McGrath [Sun, 19 Oct 2008 03:28:23 +0000 (20:28 -0700)]
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>

fs/Kconfig.binfmt
include/linux/sched.h

index 801db13..ce9fb3f 100644 (file)
@@ -40,6 +40,28 @@ config BINFMT_ELF_FDPIC
 
          It is also possible to run FDPIC ELF binaries on MMU linux also.
 
+config CORE_DUMP_DEFAULT_ELF_HEADERS
+       bool "Write ELF core dumps with partial segments"
+       default n
+       depends on BINFMT_ELF
+       help
+         ELF core dump files describe each memory mapping of the crashed
+         process, and can contain or omit the memory contents of each one.
+         The contents of an unmodified text mapping are omitted by default.
+
+         For an unmodified text mapping of an ELF object, including just
+         the first page of the file in a core dump makes it possible to
+         identify the build ID bits in the file, without paying the i/o
+         cost and disk space to dump all the text.  However, versions of
+         GDB before 6.7 are confused by ELF core dump files in this format.
+
+         The core dump behavior can be controlled per process using
+         the /proc/PID/coredump_filter pseudo-file; this setting is
+         inherited.  See Documentation/filesystems/proc.txt for details.
+
+         This config option changes the default setting of coredump_filter
+         seen at boot time.  If unsure, say N.
+
 config BINFMT_FLAT
        bool "Kernel support for flat binaries"
        depends on !MMU && (!FRV || BROKEN)
index 017cc91..f52dbd3 100644 (file)
@@ -411,7 +411,13 @@ extern int get_dumpable(struct mm_struct *mm);
        (((1 << MMF_DUMP_FILTER_BITS) - 1) << MMF_DUMP_FILTER_SHIFT)
 #define MMF_DUMP_FILTER_DEFAULT \
        ((1 << MMF_DUMP_ANON_PRIVATE) | (1 << MMF_DUMP_ANON_SHARED) |\
-        (1 << MMF_DUMP_HUGETLB_PRIVATE))
+        (1 << MMF_DUMP_HUGETLB_PRIVATE) | MMF_DUMP_MASK_DEFAULT_ELF)
+
+#ifdef CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS
+# define MMF_DUMP_MASK_DEFAULT_ELF     (1 << MMF_DUMP_ELF_HEADERS)
+#else
+# define MMF_DUMP_MASK_DEFAULT_ELF     0
+#endif
 
 struct sighand_struct {
        atomic_t                count;