X-Git-Url: http://git.openwrt.org/?a=blobdiff_plain;f=scripts%2Fstrip-kmod.sh;h=13e6b58007f92fa870afcb58da9ac88df7957c19;hb=9575e82bec3c23530f78f0011985eeb1e78c460e;hp=68da9e901baa0c36d4a0b8b71e3a94fe6b9ef2cb;hpb=52db12f2ad35f12ba7b24bbf6117abde15af4dc7;p=openwrt%2Fsvn-archive%2Farchive.git diff --git a/scripts/strip-kmod.sh b/scripts/strip-kmod.sh index 68da9e901b..13e6b58007 100755 --- a/scripts/strip-kmod.sh +++ b/scripts/strip-kmod.sh @@ -11,25 +11,37 @@ MODULE="$1" exit 1 } +ARGS= +if [ -n "$KEEP_SYMBOLS" ]; then + ARGS="-X --strip-debug" +else + ARGS="-x -G __this_module --strip-unneeded" +fi + ${CROSS}objcopy \ - --strip-unneeded \ -R .comment \ -R .pdr \ -R .mdebug.abi32 \ -R .note.gnu.build-id \ -R .gnu.attributes \ -R .reginfo \ - -G __this_module \ - -x "$MODULE" "$MODULE.tmp" + $ARGS \ + "$MODULE" "$MODULE.tmp" + +[ -n "$NO_RENAME" ] && { + mv "${MODULE}.tmp" "$MODULE" + exit 0 +} ${CROSS}nm "$MODULE.tmp" | awk ' BEGIN { n = 0 } -$3 && $2 ~ /[brtd]/ && $3 !~ /\$LC/ { +$3 && $2 ~ /[brtd]/ && $3 !~ /\$LC/ && !def[$3] { print "--redefine-sym "$3"=_"n; n = n + 1 + def[$3] = 1 } ' > "$MODULE.tmp1"