0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 set -e
0018
0019 cur_ksyms_file="include/generated/autoksyms.h"
0020 new_ksyms_file="include/generated/autoksyms.h.tmpnew"
0021
0022 info() {
0023 if [ "$quiet" != "silent_" ]; then
0024 printf " %-7s %s\n" "$1" "$2"
0025 fi
0026 }
0027
0028 info "CHK" "$cur_ksyms_file"
0029
0030
0031 case "$KBUILD_VERBOSE" in
0032 *1*)
0033 set -x
0034 ;;
0035 esac
0036
0037
0038 $CONFIG_SHELL $srctree/scripts/gen_autoksyms.sh --modorder "$new_ksyms_file"
0039
0040
0041
0042 changed=$(
0043 count=0
0044 sort "$cur_ksyms_file" "$new_ksyms_file" | uniq -u |
0045 sed -n 's/^#define __KSYM_\(.*\) 1/\1/p' |
0046 while read sympath; do
0047 if [ -z "$sympath" ]; then continue; fi
0048 depfile="include/ksym/${sympath}"
0049 mkdir -p "$(dirname "$depfile")"
0050 touch "$depfile"
0051
0052
0053
0054
0055 while [ ! "$depfile" -nt "$new_ksyms_file" ]; do
0056 touch "$depfile"
0057 done
0058 echo $((count += 1))
0059 done | tail -1 )
0060 changed=${changed:-0}
0061
0062 if [ $changed -gt 0 ]; then
0063
0064 old=$(grep -c "^#define __KSYM_" "$cur_ksyms_file" || true)
0065 new=$(grep -c "^#define __KSYM_" "$new_ksyms_file" || true)
0066 info "KSYMS" "symbols: before=$old, after=$new, changed=$changed"
0067 info "UPD" "$cur_ksyms_file"
0068 mv -f "$new_ksyms_file" "$cur_ksyms_file"
0069
0070 exec $@
0071 else
0072 rm -f "$new_ksyms_file"
0073 fi