summaryrefslogtreecommitdiffstats
path: root/src/oh-strip
diff options
context:
space:
mode:
Diffstat (limited to 'src/oh-strip')
-rw-r--r--src/oh-strip92
1 files changed, 0 insertions, 92 deletions
diff --git a/src/oh-strip b/src/oh-strip
deleted file mode 100644
index c03fb43..0000000
--- a/src/oh-strip
+++ /dev/null
@@ -1,92 +0,0 @@
-#! /bin/sh
-#
-# opkhelper
-# src/oh-strip
-# Strip binary objects of symbols.
-#
-# Copyright (C) 2012 Patrick "P. J." McDermott
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-print_usage()
-{
- printf 'Usage: %s [-g] [-l] binaryfile...\n' "$1"
-}
-
-error()
-{
- printf 'oh-strip: Error: %s\n' "${1}"
- exit 1
-}
-
-opts=$(getopt -n "${0}" -o 'gl' -- "${@}")
-if [ ${?} -ne 0 ]; then
- print_usage "${0}" >&2
- exit 1;
-fi
-eval set -- "${opts}"
-while true; do
- case "${1}" in
- -g)
- make_dbg_obj=true
- shift
- ;;
- -l)
- is_lib=true
- shift
- ;;
- --)
- shift
- break
- ;;
- *)
- print_usage "${0}" >&2
- exit 1
- ;;
- esac
-done
-
-if [ -z "${make_dbg_obj}" ]; then
- make_dbg_obj=false
-fi
-if [ -z "${is_lib}" ]; then
- is_lib=false
-fi
-
-if [ ${#} -eq 0 ]; then
- print_usage ${0} >&2
- exit 1
-fi
-
-# Iterate over object files.
-while [ ${#} -gt 0 ]; do
- printf 'oh-strip: Stripping symbols from file "%s"...\n' "${1}"
-
- if ${make_dbg_obj}; then
- # Copy debugging symbols into a debugging object file and add a GDB link
- # from the original object file to the debugging object file.
- mkdir -p "$(dirname "dest/usr/lib/debug/${1}")" || \
- error 'Cannot make directory path to debugging object'
- objcopy --only-keep-debug --compress-debug-sections "dest/${1}" \
- "dest/usr/lib/debug/${1}" || error 'Cannot make debugging object'
- objcopy --add-gnu-debuglink="dest/usr/lib/debug/${1}" "dest/${1}" || \
- error 'Cannot add GDB link'
- chmod 644 "dest/usr/lib/debug/${1}" || \
- error 'Cannot set mode on debugging object'
- fi
- # Strip the object file of symbols.
- # TODO: If the file is not a library, strip it of all symbols.
- strip -g "dest/${1}" || error 'Cannot strip object'
- shift
-done