Home | History | Annotate | Download | only in firmware
      1 #!/bin/bash
      2 
      3 #
      4 # Copyright (C) 2016 The Android Open Source Project
      5 #
      6 # Licensed under the Apache License, Version 2.0 (the "License");
      7 # you may not use this file except in compliance with the License.
      8 # You may obtain a copy of the License at
      9 #
     10 #      http://www.apache.org/licenses/LICENSE-2.0
     11 #
     12 # Unless required by applicable law or agreed to in writing, software
     13 # distributed under the License is distributed on an "AS IS" BASIS,
     14 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     15 # See the License for the specific language governing permissions and
     16 # limitations under the License.
     17 #
     18 
     19 # Exit in error if we use an undefined variable (i.e. commit a typo).
     20 set -u
     21 
     22 infile="$1"
     23 shift
     24 outfile="$1"
     25 shift
     26 
     27 retcode=0
     28 
     29 echo -e "\n\nChecking '$infile' for forbidden symbols\n\n" >&2
     30 
     31 for var in "$@"
     32 do
     33 	look_for=$(echo "$var" | sed 's/\([^=]*\)=\(.*\)/\1/g')
     34 	if echo "$var" | grep = >/dev/null
     35 	then
     36 		explanation=$(echo "$var" | sed 's/\([^=]*\)=/ /g')
     37 	else
     38 		explanation=""
     39 	fi
     40 
     41 	explanation="Forbidden function '$look_for' found. This is a build error.$explanation"
     42 
     43 
     44 	if ${CROSS_COMPILE}nm -a "$infile" |grep -e "[0-9a-f]\{8\} [Tt] $look_for" >/dev/null
     45 	then
     46 		echo $explanation >&2
     47 		retcode=-1
     48 	fi
     49 done
     50 
     51 if [ $retcode -eq 0 ]
     52 then
     53 	echo "Symcheck found nothing bad. Proceeding" >&2
     54 	cp "$infile" "$outfile"
     55 fi
     56 
     57 exit $retcode
     58 
     59 
     60