Home | History | Annotate | Download | only in tests
      1 #!/bin/sh
      2 
      3 # Check if the passed in (CAPABILITY_WORD) matches a value found in the
      4 # current hwcap aux vector.
      5 
      6 # return '0' to indicate the capability was found.
      7 # return '1' for not found, or any other error condition.
      8 
      9 CAPABILITY_WORD=$1
     10 
     11 # SANITY CHECK Begin:
     12 # These are potential hwcap values as found in the glibc dl-procinfo.c
     13 # sources as of July 2015.
     14 P_HWCAP_1=" vsx arch_2_06 power6x dfp pa6t arch_2_05 ic_snoop smt booke"
     15 P_HWCAP_2=" cellbe power5+ power5 power4 notb efpdouble efpsingle spe"
     16 P_HWCAP_3=" ucache 4xxmac mmu fpu altivec ppc601 ppc64 ppc32 "
     17 P_HWCAP2_1=" tar isel ebb dscr htm arch_2_07 "
     18 CAPABILITY_FOUND="no"
     19 for POTENTIAL_CAP in $P_HWCAP_1 $P_HWCAP_2 $P_HWCAP_3 $P_HWCAP2_1 ; do
     20 	if [ "x$CAPABILITY_WORD" = "x$POTENTIAL_CAP" ]; then
     21 		CAPABILITY_FOUND="yes"
     22 		break
     23 	fi
     24 done
     25 if [ x$CAPABILITY_FOUND = "xno" ]; then
     26 	echo "Warning: did not find $CAPABILITY_WORD in the potential capabilities list."
     27 	echo "         LD_SHOW_AUXV=1 /bin/true | grep ^AT_HWCAP "
     28 	echo "         Double-check that the input value [$CAPABILITY_WORD] is valid."
     29 fi
     30 # SANITY CHECK End
     31 
     32 # Capability Check Begin:
     33 LD_SHOW_AUXV=1 /bin/true | grep ^AT_HWCAP | grep -w $CAPABILITY_WORD 2>&1 > /dev/null
     34 if [ "$?" -eq "0" ]; then
     35 	#echo "found the capability"
     36 	exit 0
     37 elif [ "$?" -eq "2" ]; then
     38 	# echo "grep failure"
     39 	exit 1
     40 else
     41 	#echo "did not find the capability"
     42 	exit 1
     43 fi
     44 
     45