mirror of
https://github.com/vincentmli/bpfire.git
synced 2026-04-26 19:00:34 +02:00
Fix stripping.
This commit is contained in:
28
src/stripper
28
src/stripper
@@ -1,10 +1,32 @@
|
||||
#!/bin/bash
|
||||
#!/tools/bin/bash
|
||||
|
||||
dirs=""
|
||||
excludes="/dev /proc /sys /run"
|
||||
|
||||
while [ $# -gt 0 ]; do
|
||||
case "${1}" in
|
||||
--exclude=*)
|
||||
excludes="${excludes} ${1#*=}"
|
||||
;;
|
||||
*)
|
||||
dirs="${dirs} ${1}"
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
function _strip() {
|
||||
local file=${1}
|
||||
|
||||
local cmd="${STRIP-strip}"
|
||||
|
||||
local exclude l
|
||||
for exclude in ${excludes}; do
|
||||
l=${#exclude}
|
||||
if [ "${file:0:${l}}" = "${exclude}" ]; then
|
||||
return 0
|
||||
fi
|
||||
done
|
||||
|
||||
case "$(file -bi ${file})" in
|
||||
application/x-sharedlib*|application/x-archive*)
|
||||
cmd="${cmd} --strip-debug --remove-section=.comment --remove-section=.note"
|
||||
@@ -18,7 +40,7 @@ function _strip() {
|
||||
${cmd} ${file}
|
||||
}
|
||||
|
||||
for dir in $@; do
|
||||
for dir in ${dirs}; do
|
||||
# Strip shared objects.
|
||||
find ${dir} -type f \( -perm -0100 -or -perm -0010 -or -perm -0001 \) \
|
||||
| file -N -f - | sed -n -e 's/^\(.*\):[ ]*.*ELF.*, not stripped/\1/p' |
|
||||
|
||||
Reference in New Issue
Block a user