aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordylan.araps@gmail.com <dylan.araps@gmail.com>2019-08-30 16:48:00 +0000
committerdylan.araps@gmail.com <dylan.araps@gmail.com>2019-08-30 16:48:00 +0000
commit19cee87c0bbcf6c8ee2a0b763af0161ae9904be5 (patch)
tree36ac09973de4557e6fb023f4d25ae7620f9369a6
parent775a7992cb1614fe9b0e16aade3aa9bd2fc718ac (diff)
downloadcpt-19cee87c0bbcf6c8ee2a0b763af0161ae9904be5.tar.gz
stripping: swap to readelf
FossilOrigin-Name: 1ef9a34232de1b9120e80b84b5bcf9f4509ec95992ae93e5e27c281d2d3cca47
-rwxr-xr-xkiss42
1 files changed, 20 insertions, 22 deletions
diff --git a/kiss b/kiss
index 47b4c88..eddbb95 100755
--- a/kiss
+++ b/kiss
@@ -257,29 +257,27 @@ pkg_strip() {
# Strip only files matching the below mime-types from the package
# directory. No alternative to 'file' here sadly.
- find "$pkg_dir/$1" -type f -exec file -i {} + |
- while IFS=': ' read -r bin mime; do
- case $mime in
- application/x-sharedlib*|\
- application/x-pie-executable*)
- strip_opts=--strip-unneeded
- ;;
-
- application/x-archive*)
- strip_opts=--strip-debug
- ;;
-
- application/x-executable*)
- strip_opts=--strip-all
- ;;
-
- *) continue ;;
- esac
+ find "$pkg_dir/$1" -type f | while read -r file; do
+ case "$(readelf -h "$file" 2>/dev/null)" in
+ *" DYN "*)
+ strip_opt=--strip-unneeded
+ ;;
- # Suppress errors here as some binaries and libraries may
- # fail to strip. This is OK.
- strip "$strip_opts" "$bin" 2>/dev/null &
- done
+ *" REL "*)
+ strip_opt=--strip-debug
+ ;;
+
+ *" EXEC "*)
+ strip_opt=--strip-all
+ ;;
+
+ *) continue ;;
+ esac
+
+ # Suppress errors here as some binaries and libraries may
+ # fail to strip. This is OK.
+ strip "$strip_opt" "$file" 2>/dev/null &
+ done
wait
}