summaryrefslogtreecommitdiff
path: root/meta/conf
diff options
context:
space:
mode:
authorMark Hatle <mark.hatle@windriver.com>2011-02-08 21:46:47 -0600
committerRichard Purdie <rpurdie@linux.intel.com>2011-03-01 11:46:46 +0000
commit9df9613c69830ad508415ecfecd121c7fc272c08 (patch)
tree2178d0f172aa0575fd8f62dbcd1b878be719aa5a /meta/conf
parentde07dda48e18b7d9062a661e517fe97a4bb727ce (diff)
downloadopenembedded-core-9df9613c69830ad508415ecfecd121c7fc272c08.tar.gz
openembedded-core-9df9613c69830ad508415ecfecd121c7fc272c08.tar.bz2
openembedded-core-9df9613c69830ad508415ecfecd121c7fc272c08.tar.xz
openembedded-core-9df9613c69830ad508415ecfecd121c7fc272c08.zip
Revise stripping and splitting of debug information
We now support two styles of debug information generation, the '.debug' style, which is the same as previously implemented. This style simply splits the debug information and makes it available in the same general directory. /bin/foo -> /bin/.debug/foo The new 'debug-file-directory' style splits the debug information and places it into the single debug-file-directory, /usr/lib/debug: /bin/foo -> /usr/lib/debug/bin/foo.debug Both also find and copy all referenced source code to a new /usr/src/debug directory. This allows the -dbg files to be used for stand-a-lone debugging on or off the target device. File stripping is now handled as a seperate operation from file splitting. This allows us to split the debug information, but also leave it in the original file -- or prevent the debug information from being split. Also enhance the comments within local.conf.sample to provide a better understanding of the control the user has over debug file generation. Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Diffstat (limited to 'meta/conf')
-rw-r--r--meta/conf/bitbake.conf9
-rw-r--r--meta/conf/local.conf.sample31
2 files changed, 38 insertions, 2 deletions
diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf
index cba918e1e..cf99a8124 100644
--- a/meta/conf/bitbake.conf
+++ b/meta/conf/bitbake.conf
@@ -242,9 +242,14 @@ SECTION_${PN}-dev = "devel"
ALLOW_EMPTY_${PN}-dev = "1"
RDEPENDS_${PN}-dev = "${PN} (= ${EXTENDPV})"
-FILES_${PN}-dbg = "${bindir}/.debug ${sbindir}/.debug ${libexecdir}/.debug ${libdir}/.debug \
+DOTDEBUG-dbg = "${bindir}/.debug ${sbindir}/.debug ${libexecdir}/.debug ${libdir}/.debug \
${base_bindir}/.debug ${base_sbindir}/.debug ${base_libdir}/.debug ${libdir}/${PN}/.debug \
- ${libdir}/matchbox-panel/.debug"
+ ${libdir}/matchbox-panel/.debug /usr/src/debug"
+
+DEBUGFILEDIRECTORY-dbg = "/usr/lib/debug /usr/src/debug"
+
+FILES_${PN}-dbg = "${@bb.data.getVar(['DOTDEBUG-dbg', 'DEBUGFILEDIRECTORY-dbg'][bb.data.getVar('PACKAGE_DEBUG_SPLIT_STYLE', d, 1) == 'debug-file-directory'], d, 1)}"
+
SECTION_${PN}-dbg = "devel"
ALLOW_EMPTY_${PN}-dbg = "1"
RRECOMMENDS_${PN}-dbg = "${PN} (= ${EXTENDPV})"
diff --git a/meta/conf/local.conf.sample b/meta/conf/local.conf.sample
index 65b508717..434c6841b 100644
--- a/meta/conf/local.conf.sample
+++ b/meta/conf/local.conf.sample
@@ -104,6 +104,37 @@ USER_CLASSES ?= "image-mklibs image-prelink"
# <build directory>/tmp
#TMPDIR = "${POKYBASE}/build/tmp"
+# The following are used to control options related to debugging.
+#
+# Uncomment this to change the optimization to make debugging easer, at the
+# possible cost of performance.
+# DEBUG_BUILD = "1"
+#
+# Uncomment this to disable the stripping of the installed binaries
+# INHIBIT_PACKAGE_STRIP = "1"
+#
+# Uncomment this to disable the split of the debug information into -dbg files
+# INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
+#
+# When splitting debug information, the following controls the results of the
+# file splitting.
+#
+# .debug (default):
+# When splitting the debug information will be placed into
+# a .debug directory in the same dirname of the binary produced:
+# /bin/foo -> /bin/.debug/foo
+#
+# debug-file-directory:
+# When splitting the debug information will be placed into
+# a central debug-file-directory, /usr/lib/debug:
+# /bin/foo -> /usr/lib/debug/bin/foo.debug
+#
+# Any source code referenced in the debug symbols will be copied
+# and made available within the /usr/src/debug directory
+#
+PACKAGE_DEBUG_SPLIT_STYLE = '.debug'
+# PACKAGE_DEBUG_SPLIT_STYLE = 'debug-file-directory'
+
# Uncomment these to build a package such that you can use gprof to profile it.
# NOTE: This will only work with 'linux' targets, not
# 'linux-uclibc', as uClibc doesn't provide the necessary