eval ${var}_${flag}=$(tf has ${flag} ${!var})
done
}
-exp_tf FEATURES installsources nostrip splitdebug
+exp_tf FEATURES compressdebug installsources nostrip splitdebug
exp_tf RESTRICT binchecks installsources strip
[[ " ${FEATURES} " == *" force-prefix "* ]] || \
if [[ -e ${T}/prepstrip.split.debug ]] ; then
mv "${T}"/prepstrip.split.debug "${y}"
else
- ${OBJCOPY} --only-keep-debug "${x}" "${y}"
+ local objcopy_flags="--only-keep-debug"
+ ${FEATURES_compressdebug} && objcopy_flags+=" --compress-debug-sections"
+ ${OBJCOPY} ${objcopy_flags} "${x}" "${y}"
${OBJCOPY} --add-gnu-debuglink="${y}" "${x}"
fi
local args="a-x,o-w"
type. Currently, only \fBgzip\fR(1) compression is supported, so build
logs will have a '.gz' extension when this feature is enabled.
.TP
+.B compressdebug
+Compress the debug sections in the split debug files with zlib to save
+space. Make sure you have built both binutils and gdb with USE=zlib
+support for this to work. See \fBsplitdebug\fR for general split debug
+information (upon which this feature depends).
+.TP
.B config\-protect\-if\-modified
This causes the \fBCONFIG_PROTECT\fR behavior to be skipped for files
that have not been modified since they were installed.
.B splitdebug
Prior to stripping ELF etdyn and etexec files, the debugging info is
stored for later use by various debuggers. This feature is disabled by
-\fBnostrip\fR. For installation of source code, see \fBinstallsources\fR.
+\fBnostrip\fR. You should also consider setting \fBcompressdebug\fR so
+the files don't suck up a lot of space. For installation of source code,
+see \fBinstallsources\fR.
.TP
.B strict
Have portage react strongly to conditions that have the potential to be
("_ebuild_lock",)
# FEATURES displayed prior to setup phase
- _features_display = ("ccache", "distcc", "distcc-pump", "fakeroot",
+ _features_display = (
+ "ccache", "compressdebug", "distcc", "distcc-pump", "fakeroot",
"installsources", "keeptemp", "keepwork", "nostrip",
"preserve-libs", "sandbox", "selinux", "sesandbox",
"splitdebug", "suidctl", "test", "userpriv",
- "usersandbox")
+ "usersandbox"
+ )
# Locked phases
_locked_phases = ("setup", "preinst", "postinst", "prerm", "postrm")
SUPPORTED_FEATURES = frozenset([
"assume-digests", "binpkg-logs", "buildpkg", "buildsyspkg", "candy",
"ccache", "chflags", "clean-logs",
- "collision-protect", "compress-build-logs",
+ "collision-protect", "compress-build-logs", "compressdebug",
"config-protect-if-modified",
"digest", "distcc", "distcc-pump", "distlocks", "ebuild-locks", "fakeroot",
"fail-clean", "force-mirror", "force-prefix", "getbinpkg",