| #!/bin/sh |
| |
| # Check -V option. |
| . "${srcdir=.}/init.sh" |
| |
| run_prog_skip_if_failed date +%Y > /dev/null |
| year="$(date +%Y)" |
| |
| run_strace -V > "$LOG" |
| |
| getstr() |
| { |
| sed -r -n 's/#define[[:space:]]*'"$1"'[[:space:]]*"([^"]*)".*/\1/p' \ |
| ../../config.h |
| } |
| |
| # getoption OPTION YES_STRING [NO_STRING] |
| # |
| # Returns YES_STRING in case OPTION is enabled (present in config.h and has |
| # a non-zero numeric value). Otherwise, NO_STRING (or empty string, if not |
| # specified) is returned. |
| getoption() |
| { |
| local opt |
| opt=$(sed -r -n 's/#define[[:space:]]*'"$1"'[[:space:]]*([0-9]+)$/\1/p' \ |
| ../../config.h) |
| if [ -n "$opt" -a "$opt" -ne 0 ]; then |
| printf "%s" "$2" |
| else |
| printf "%s" "${3-}" |
| fi |
| } |
| |
| config_year=$(getstr COPYRIGHT_YEAR) |
| |
| [ "$year" -ge "$config_year" ] && [ "$config_year" -ge 2017 ] || { |
| echo >&2 "The year derived from config.h (${config_year}) does not pass sanity checks." |
| exit 1 |
| } |
| |
| option_unwind=$(getoption ENABLE_STACKTRACE \ |
| " stack-trace=$(getstr USE_UNWINDER)") |
| option_demangle=$(getoption USE_DEMANGLE " stack-demangle") |
| |
| option_m32= |
| option_mx32= |
| case "$STRACE_NATIVE_ARCH" in |
| x86_64) |
| option_m32=$(getoption HAVE_M32_MPERS ' m32-mpers' ' no-m32-mpers') |
| option_mx32=$(getoption HAVE_MX32_MPERS ' mx32-mpers' ' no-mx32-mpers') |
| ;; |
| aarch64|powerpc64|riscv|s390x|sparc64|tile|x32) |
| option_m32=$(getoption HAVE_M32_MPERS ' m32-mpers' ' no-m32-mpers') |
| ;; |
| esac |
| |
| features="${option_unwind}${option_demangle}${option_m32}${option_mx32}" |
| [ -n "$features" ] || features=" (none)" |
| |
| cat > "$EXP" << __EOF__ |
| $(getstr PACKAGE_NAME) -- version $(getstr PACKAGE_VERSION) |
| Copyright (c) 1991-${config_year} The strace developers <$(getstr PACKAGE_URL)>. |
| This is free software; see the source for copying conditions. There is NO |
| warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
| |
| Optional features enabled:${features} |
| __EOF__ |
| |
| match_diff "$LOG" "$EXP" |