summaryrefslogtreecommitdiffstats
path: root/src/oh-strip.sh
diff options
context:
space:
mode:
Diffstat (limited to 'src/oh-strip.sh')
-rw-r--r--src/oh-strip.sh74
1 files changed, 6 insertions, 68 deletions
diff --git a/src/oh-strip.sh b/src/oh-strip.sh
index 2ec28cf..ca0487a 100644
--- a/src/oh-strip.sh
+++ b/src/oh-strip.sh
@@ -1,4 +1,4 @@
-#!@@SHELL@@
+#!@@SH@@
#
# opkhelper
# src/oh-strip
@@ -19,74 +19,12 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-. @@LIBDIR@@/opkhelper/messages
+. @@LIBDIR@@/messages
+. @@LIBDIR@@/locale
-print_usage()
+main()
{
- printf 'Usage: %s [-g] [-l] binaryfile...\n' "${1}"
+ oh_locale_set
}
-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
- oh_info 'Stripping symbols from file "%s"...' "${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}")" || \
- oh_error 'Cannot make directory path to debugging object'
- ${OBJCOPY:-objcopy} \
- --only-keep-debug --compress-debug-sections \
- "dest/${1}" "dest/usr/lib/debug/${1}" || \
- oh_error 'Cannot make debugging object'
- ${OBJCOPY:-objcopy} \
- --add-gnu-debuglink="dest/usr/lib/debug/${1}" \
- "dest/${1}" || \
- oh_error 'Cannot add GDB link'
- chmod 644 "dest/usr/lib/debug/${1}" || \
- oh_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:-strip} -g "dest/${1}" || oh_error 'Cannot strip object'
- shift
-done
+main "${@}"