1*cf84ac9aSAndroid Build Coastguard Worker#!/bin/sh 2*cf84ac9aSAndroid Build Coastguard Worker 3*cf84ac9aSAndroid Build Coastguard Worker# Check -V option. 4*cf84ac9aSAndroid Build Coastguard Worker. "${srcdir=.}/init.sh" 5*cf84ac9aSAndroid Build Coastguard Worker 6*cf84ac9aSAndroid Build Coastguard Workerrun_prog_skip_if_failed date +%Y > /dev/null 7*cf84ac9aSAndroid Build Coastguard Workeryear="$(date +%Y)" 8*cf84ac9aSAndroid Build Coastguard Worker 9*cf84ac9aSAndroid Build Coastguard Workerrun_strace -V > "$LOG" 10*cf84ac9aSAndroid Build Coastguard Worker 11*cf84ac9aSAndroid Build Coastguard Workergetstr() 12*cf84ac9aSAndroid Build Coastguard Worker{ 13*cf84ac9aSAndroid Build Coastguard Worker sed -r -n 's/#define[[:space:]]*'"$1"'[[:space:]]*"([^"]*)".*/\1/p' \ 14*cf84ac9aSAndroid Build Coastguard Worker ../../config.h 15*cf84ac9aSAndroid Build Coastguard Worker} 16*cf84ac9aSAndroid Build Coastguard Worker 17*cf84ac9aSAndroid Build Coastguard Worker# getoption OPTION YES_STRING [NO_STRING] 18*cf84ac9aSAndroid Build Coastguard Worker# 19*cf84ac9aSAndroid Build Coastguard Worker# Returns YES_STRING in case OPTION is enabled (present in config.h and has 20*cf84ac9aSAndroid Build Coastguard Worker# a non-zero numeric value). Otherwise, NO_STRING (or empty string, if not 21*cf84ac9aSAndroid Build Coastguard Worker# specified) is returned. 22*cf84ac9aSAndroid Build Coastguard Workergetoption() 23*cf84ac9aSAndroid Build Coastguard Worker{ 24*cf84ac9aSAndroid Build Coastguard Worker local opt 25*cf84ac9aSAndroid Build Coastguard Worker opt=$(sed -r -n 's/#define[[:space:]]*'"$1"'[[:space:]]*([0-9]+)$/\1/p' \ 26*cf84ac9aSAndroid Build Coastguard Worker ../../config.h) 27*cf84ac9aSAndroid Build Coastguard Worker if [ -n "$opt" -a "$opt" -ne 0 ]; then 28*cf84ac9aSAndroid Build Coastguard Worker printf "%s" "$2" 29*cf84ac9aSAndroid Build Coastguard Worker else 30*cf84ac9aSAndroid Build Coastguard Worker printf "%s" "${3-}" 31*cf84ac9aSAndroid Build Coastguard Worker fi 32*cf84ac9aSAndroid Build Coastguard Worker} 33*cf84ac9aSAndroid Build Coastguard Worker 34*cf84ac9aSAndroid Build Coastguard Workerconfig_year=$(getstr COPYRIGHT_YEAR) 35*cf84ac9aSAndroid Build Coastguard Worker 36*cf84ac9aSAndroid Build Coastguard Worker[ "$year" -ge "$config_year" ] && [ "$config_year" -ge 2017 ] || { 37*cf84ac9aSAndroid Build Coastguard Worker echo >&2 "The year derived from config.h (${config_year}) does not pass sanity checks." 38*cf84ac9aSAndroid Build Coastguard Worker exit 1 39*cf84ac9aSAndroid Build Coastguard Worker} 40*cf84ac9aSAndroid Build Coastguard Worker 41*cf84ac9aSAndroid Build Coastguard Workeroption_unwind=$(getoption ENABLE_STACKTRACE \ 42*cf84ac9aSAndroid Build Coastguard Worker " stack-trace=$(getstr USE_UNWINDER)") 43*cf84ac9aSAndroid Build Coastguard Workeroption_demangle=$(getoption USE_DEMANGLE " stack-demangle") 44*cf84ac9aSAndroid Build Coastguard Worker 45*cf84ac9aSAndroid Build Coastguard Workeroption_m32= 46*cf84ac9aSAndroid Build Coastguard Workeroption_mx32= 47*cf84ac9aSAndroid Build Coastguard Workercase "$STRACE_NATIVE_ARCH" in 48*cf84ac9aSAndroid Build Coastguard Workerx86_64) 49*cf84ac9aSAndroid Build Coastguard Worker option_m32=$(getoption HAVE_M32_MPERS ' m32-mpers' ' no-m32-mpers') 50*cf84ac9aSAndroid Build Coastguard Worker option_mx32=$(getoption HAVE_MX32_MPERS ' mx32-mpers' ' no-mx32-mpers') 51*cf84ac9aSAndroid Build Coastguard Worker ;; 52*cf84ac9aSAndroid Build Coastguard Workeraarch64|powerpc64|riscv|s390x|sparc64|tile|x32) 53*cf84ac9aSAndroid Build Coastguard Worker option_m32=$(getoption HAVE_M32_MPERS ' m32-mpers' ' no-m32-mpers') 54*cf84ac9aSAndroid Build Coastguard Worker ;; 55*cf84ac9aSAndroid Build Coastguard Workeresac 56*cf84ac9aSAndroid Build Coastguard Worker 57*cf84ac9aSAndroid Build Coastguard Workerfeatures="${option_unwind}${option_demangle}${option_m32}${option_mx32}" 58*cf84ac9aSAndroid Build Coastguard Worker[ -n "$features" ] || features=" (none)" 59*cf84ac9aSAndroid Build Coastguard Worker 60*cf84ac9aSAndroid Build Coastguard Workercat > "$EXP" << __EOF__ 61*cf84ac9aSAndroid Build Coastguard Worker$(getstr PACKAGE_NAME) -- version $(getstr PACKAGE_VERSION) 62*cf84ac9aSAndroid Build Coastguard WorkerCopyright (c) 1991-${config_year} The strace developers <$(getstr PACKAGE_URL)>. 63*cf84ac9aSAndroid Build Coastguard WorkerThis is free software; see the source for copying conditions. There is NO 64*cf84ac9aSAndroid Build Coastguard Workerwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 65*cf84ac9aSAndroid Build Coastguard Worker 66*cf84ac9aSAndroid Build Coastguard WorkerOptional features enabled:${features} 67*cf84ac9aSAndroid Build Coastguard Worker__EOF__ 68*cf84ac9aSAndroid Build Coastguard Worker 69*cf84ac9aSAndroid Build Coastguard Workermatch_diff "$LOG" "$EXP" 70