X-Git-Url: http://git.ipfire.org/?p=people%2Fteissler%2Fipfire-2.x.git;a=blobdiff_plain;f=src%2Fstripper;h=2b4feafe9063c50bf0c01795bd8ea887fcf21e19;hp=15fa308faff70a1f3731ea395e3e01657788a418;hb=50294f93c21d7a8c9bad7bfde953856d45040999;hpb=d9bb5239918653b581c392bd21ed5c82c1547216 diff --git a/src/stripper b/src/stripper index 15fa308fa..2b4feafe9 100755 --- a/src/stripper +++ b/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' |