endif
 ifdef CONFIG_BUILD_DOCSRC
        $(Q)$(MAKE) $(build)=Documentation
+endif
+ifdef CONFIG_GDB_SCRIPTS
+       $(Q)ln -fsn `cd $(srctree) && /bin/pwd`/scripts/gdb/vmlinux-gdb.py
 endif
        +$(call if_changed,link-vmlinux)
 
                  Module.symvers tags TAGS cscope* GPATH GTAGS GRTAGS GSYMS \
                  signing_key.priv signing_key.x509 x509.genkey         \
                  extra_certificates signing_key.x509.keyid             \
-                 signing_key.x509.signer
+                 signing_key.x509.signer vmlinux-gdb.py
 
 # clean - Delete most, but leave enough to build external modules
 #
 
          But it significantly improves the success of resolving
          variables in gdb on optimized code.
 
+config GDB_SCRIPTS
+       bool "Provide GDB scripts for kernel debugging"
+       depends on DEBUG_INFO
+       help
+         This creates the required links to GDB helper scripts in the
+         build directory. If you load vmlinux into gdb, the helper
+         scripts will be automatically imported by gdb as well, and
+         additional functions are available to analyze a Linux kernel
+         instance. See Documentation/gdb-kernel-debugging.txt for further
+         details.
+
 config ENABLE_WARN_DEPRECATED
        bool "Enable __deprecated logic"
        default y
 
 subdir-y                     += mod
 subdir-$(CONFIG_SECURITY_SELINUX) += selinux
 subdir-$(CONFIG_DTC)         += dtc
+subdir-$(CONFIG_GDB_SCRIPTS) += gdb
 
 # Let clean descend into subdirs
 subdir-        += basic kconfig package
 
--- /dev/null
+subdir-y := linux
 
--- /dev/null
+always := gdb-scripts
+
+SRCTREE := $(shell cd $(srctree) && /bin/pwd)
+
+$(obj)/gdb-scripts:
+ifneq ($(KBUILD_SRC),)
+       $(Q)ln -fsn $(SRCTREE)/$(obj)/*.py $(objtree)/$(obj)
+endif
+       @:
+
+clean-files := *.pyc *.pyo $(if $(KBUILD_SRC),*.py)
 
--- /dev/null
+#
+# gdb helper commands and functions for Linux kernel debugging
+#
+#  loader module
+#
+# Copyright (c) Siemens AG, 2012, 2013
+#
+# Authors:
+#  Jan Kiszka <jan.kiszka@siemens.com>
+#
+# This work is licensed under the terms of the GNU GPL version 2.
+#
+
+import os
+
+sys.path.insert(0, os.path.dirname(__file__) + "/scripts/gdb")
+
+try:
+    gdb.parse_and_eval("0")
+    gdb.execute("", to_string=True)
+except:
+    gdb.write("NOTE: gdb 7.2 or later required for Linux helper scripts to "
+              "work.\n")