diff options
Diffstat (limited to 'subr/pkg_strip.subr')
-rw-r--r-- | subr/pkg_strip.subr | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/subr/pkg_strip.subr b/subr/pkg_strip.subr new file mode 100644 index 00000000..e0b2bf12 --- /dev/null +++ b/subr/pkg_strip.subr @@ -0,0 +1,36 @@ +# +# set -o errexit -o noglob are assumed. +# + +pkgp_strip_tree() { + local _tree_old="${1}" _tree_root="${2}"; + local _tree_new="${_tree_old%.*}.new" _tree_diff="${_tree_old%.*}.diff"; + if [ ! -e "${_tree_old}" ]; then + return; + fi; + find "${_tree_root}" -perm /a=x \( -type f -or -type l \) > "${_tree_new}"; + set +o errexit; + for _pname in $(diff -u "${_tree_old}" "${_tree_new}" |\ + sed -n '3,${/^+/s/^+//p}'); do + if objdump -sj .debug_info "${_pname}" >/dev/null 2>&1; then + log_msg info "Stripping ${_pname}..."; + log_msg vnfo "${TARGET}-strip ${_pname}"; + ${TARGET}-strip ${_pname}; + fi; + done; + build_fileop rm "${_tree_old}" "${_tree_new}" "${_tree_diff}"; + set -o errexit; +}; + +pkg_strip() { + if [ "${PKG_NAME%flavour_minipix}" != "${PKG_NAME}" ] \ + && [ ${ARG_DEBUG_MINIPIX:-0} -eq 0 ]; then + pkgp_strip_tree "${WORKDIR}/.stat_minipix.old" \ + "${PREFIX_MINIPIX}"; + elif [ "${BUILD}" = release ]; then + pkgp_strip_tree "${WORKDIR}/.stat_native.old" \ + "${PREFIX_NATIVE}/bin"; + fi; +}; + +# vim:filetype=sh |