scripts/showSamples.sh
author "Yann E. MORIN" <yann.morin.1998@free.fr>
Sun May 11 23:43:52 2014 +0200 (2014-05-11)
changeset 3320 78af1c99bc6d
parent 3022 8c8041e70203
permissions -rwxr-xr-x
scripts/functions: add target_endian_le and target_endian_be

We currently define target_endian_el and target_endian_eb to be the
tuple extension depending on endianness, defined to be respectively
'el' or 'eb' according to the endianness.

Some architecture do not use 'el' or 'eb', but use 'le' or 'be'.

Provide that as well, as two new variables: target_endian_le and
target_endian_be.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Cody P Schafer <dev@codyps.com>
yann@1188
     1
#!/bin/sh
yann@1188
     2
# Yes, this is supposed to be a POSIX-compliant shell script.
yann@74
     3
yann@74
     4
# Parses all samples on the command line, and for each of them, prints
yann@74
     5
# the versions of the main tools
yann@74
     6
yann@1188
     7
# Use tools discovered by ./configure
yann@2838
     8
. "${CT_LIB_DIR}/paths.sh"
yann@1188
     9
yann@560
    10
[ "$1" = "-v" ] && opt="$1" && shift
yann@560
    11
[ "$1" = "-w" ] && opt="$1" && shift
yann@3012
    12
[ "$1" = "-W" ] && opt="$1" && shift
yann@474
    13
yann@74
    14
# GREP_OPTIONS screws things up.
yann@74
    15
export GREP_OPTIONS=
yann@74
    16
yann@74
    17
# Dump a single sample
yann@2982
    18
# Note: we use the specific .config.sample config file
yann@74
    19
dump_single_sample() {
yann@474
    20
    local verbose=0
yann@3012
    21
    local wiki=0
yann@1808
    22
    local complibs
yann@474
    23
    [ "$1" = "-v" ] && verbose=1 && shift
yann@560
    24
    [ "$1" = "-w" ] && wiki=1 && shift
yann@3012
    25
    local sample="$1"
yann@1788
    26
    case "${sample}" in
yann@1788
    27
        current)
yann@1788
    28
            sample_type="l"
yann@2982
    29
            sample="$( ${CT_NG} show-tuple )"
yann@1788
    30
            ;;
yann@1788
    31
        *)  if [ -f "${CT_TOP_DIR}/samples/${sample}/crosstool.config" ]; then
yann@1788
    32
                sample_top="${CT_TOP_DIR}"
yann@1876
    33
                sample_type="L"
yann@1788
    34
            else
yann@1788
    35
                sample_top="${CT_LIB_DIR}"
yann@1876
    36
                sample_type="G"
yann@1788
    37
            fi
yann@1788
    38
            ;;
yann@1788
    39
    esac
yann@2982
    40
    . $(pwd)/.config.sample
yann@3012
    41
    if [ ${wiki} -eq 0 ]; then
yann@3012
    42
        width=14
yann@3012
    43
        printf "[%s" "${sample_type}"
yann@3012
    44
        [ -f "${sample_top}/samples/${sample}/broken" ] && printf "B" || printf "."
yann@3012
    45
        [ "${CT_EXPERIMENTAL}" = "y" ] && printf "X" || printf "."
yann@3012
    46
        printf "]   %s\n" "${sample}"
yann@560
    47
        if [ ${verbose} -ne 0 ]; then
yann@1427
    48
            case "${CT_TOOLCHAIN_TYPE}" in
yann@1427
    49
                cross)  ;;
yann@1427
    50
                canadian)
yann@3012
    51
                    printf "    %-*s : %s\n" ${width} "Host" "${CT_HOST}"
yann@1427
    52
                    ;;
yann@1427
    53
            esac
yann@3012
    54
            printf "    %-*s : %s\n" ${width} "OS" "${CT_KERNEL}${CT_KERNEL_VERSION:+-}${CT_KERNEL_VERSION}"
yann@1845
    55
            if [    -n "${CT_GMP}"              \
yann@1845
    56
                 -o -n "${CT_MPFR}"             \
yann@1845
    57
                 -o -n "${CT_PPL}"              \
yann@1845
    58
                 -o -n "${CT_CLOOG}"            \
yann@1845
    59
                 -o -n "${CT_MPC}"              \
yann@1845
    60
                 -o -n "${CT_LIBELF}"           \
yann@1846
    61
                 -o -n "${CT_GMP_TARGET}"       \
yann@1846
    62
                 -o -n "${CT_MPFR_TARGET}"      \
yann@1846
    63
                 -o -n "${CT_PPL_TARGET}"       \
yann@1846
    64
                 -o -n "${CT_CLOOG_TARGET}"     \
yann@1846
    65
                 -o -n "${CT_MPC_TARGET}"       \
yann@1846
    66
                 -o -n "${CT_LIBELF_TARGET}"    \
yann@1808
    67
               ]; then
yann@3012
    68
                printf "    %-*s :" ${width} "Companion libs"
yann@1808
    69
                complibs=1
yann@807
    70
            fi
yann@1846
    71
            [ -z "${CT_GMP}"    -a -z "${CT_GMP_TARGET}"    ] || printf " gmp-%s"       "${CT_GMP_VERSION}"
yann@1846
    72
            [ -z "${CT_MPFR}"   -a -z "${CT_MPFR_TARGET}"   ] || printf " mpfr-%s"      "${CT_MPFR_VERSION}"
yann@1846
    73
            [ -z "${CT_PPL}"    -a -z "${CT_PPL_TARGET}"    ] || printf " ppl-%s"       "${CT_PPL_VERSION}"
yann@1846
    74
            [ -z "${CT_CLOOG}"  -a -z "${CT_CLOOG_TARGET}"  ] || printf " cloog-ppl-%s" "${CT_CLOOG_VERSION}"
yann@1846
    75
            [ -z "${CT_MPC}"    -a -z "${CT_MPC_TARGET}"    ] || printf " mpc-%s"       "${CT_MPC_VERSION}"
yann@1846
    76
            [ -z "${CT_LIBELF}" -a -z "${CT_LIBELF_TARGET}" ] || printf " libelf-%s"    "${CT_LIBELF_VERSION}"
yann@1808
    77
            [ -z "${complibs}"  ] || printf "\n"
yann@3012
    78
            printf  "    %-*s : %s\n" ${width} "binutils" "binutils-${CT_BINUTILS_VERSION}"
yann@3012
    79
            printf  "    %-*s : %s" ${width} "C compiler" "${CT_CC}-${CT_CC_VERSION} (C"
yann@642
    80
            [ "${CT_CC_LANG_CXX}" = "y"     ] && printf ",C++"
yann@642
    81
            [ "${CT_CC_LANG_FORTRAN}" = "y" ] && printf ",Fortran"
yann@642
    82
            [ "${CT_CC_LANG_JAVA}" = "y"    ] && printf ",Java"
yann@642
    83
            [ "${CT_CC_LANG_ADA}" = "y"     ] && printf ",ADA"
yann@642
    84
            [ "${CT_CC_LANG_OBJC}" = "y"    ] && printf ",Objective-C"
yann@642
    85
            [ "${CT_CC_LANG_OBJCXX}" = "y"  ] && printf ",Objective-C++"
richard@3244
    86
            [ "${CT_CC_LANG_GOLANG}" = "y"  ] && printf ",Go"
yann@649
    87
            [ -n "${CT_CC_LANG_OTHERS}"     ] && printf ",${CT_CC_LANG_OTHERS}"
yann@1519
    88
            printf ")\n"
yann@3022
    89
            printf  "    %-*s : %s (threads: %s)\n" ${width} "C library" "${CT_LIBC}${CT_LIBC_VERSION:+-}${CT_LIBC_VERSION}" "${CT_THREADS}"
yann@3012
    90
            printf  "    %-*s :" ${width} "Tools"
yann@1520
    91
            [ "${CT_TOOL_sstrip}"   ] && printf " sstrip"
yann@1520
    92
            [ "${CT_DEBUG_dmalloc}" ] && printf " dmalloc-${CT_DMALLOC_VERSION}"
yann@1520
    93
            [ "${CT_DEBUG_duma}"    ] && printf " duma-${CT_DUMA_VERSION}"
yann@1520
    94
            [ "${CT_DEBUG_gdb}"     ] && printf " gdb-${CT_GDB_VERSION}"
yann@1520
    95
            [ "${CT_DEBUG_ltrace}"  ] && printf " ltrace-${CT_LTRACE_VERSION}"
yann@1520
    96
            [ "${CT_DEBUG_strace}"  ] && printf " strace-${CT_STRACE_VERSION}"
yann@1519
    97
            printf "\n"
yann@560
    98
        fi
yann@560
    99
    else
yann@1658
   100
        case "${CT_TOOLCHAIN_TYPE}" in
yann@1658
   101
            cross)
yann@1658
   102
                printf "| ''${sample}''  | "
yann@1658
   103
                ;;
yann@1658
   104
            canadian)
yann@1658
   105
                printf "| ''"
yann@1658
   106
                printf "${sample}" |sed -r -e 's/.*,//'
yann@1658
   107
                printf "''  | ${CT_HOST}  "
yann@1658
   108
                ;;
yann@1658
   109
            *)          ;;
yann@1658
   110
        esac
yann@828
   111
        printf "|  "
yann@1659
   112
        [ "${CT_EXPERIMENTAL}" = "y" ] && printf "**X**"
yann@1659
   113
        [ -f "${sample_top}/samples/${sample}/broken" ] && printf "**B**"
yann@1427
   114
        printf "  |  ''${CT_KERNEL}''  |"
yann@1026
   115
        if [ "${CT_KERNEL}" != "bare-metal" ];then
yann@1026
   116
            if [ "${CT_KERNEL_LINUX_HEADERS_USE_CUSTOM_DIR}" = "y" ]; then
yann@1026
   117
                printf "  //custom//  "
yann@1026
   118
            else
yann@1026
   119
                printf "  ${CT_KERNEL_VERSION}  "
yann@1026
   120
            fi
yann@722
   121
        fi
yann@642
   122
        printf "|  ${CT_BINUTILS_VERSION}  "
yann@691
   123
        printf "|  ''${CT_CC}''  "
yann@642
   124
        printf "|  ${CT_CC_VERSION}  "
yann@1026
   125
        printf "|  ''${CT_LIBC}''  |"
yann@1026
   126
        if [ "${CT_LIBC}" != "none" ]; then
yann@1026
   127
            printf "  ${CT_LIBC_VERSION}  "
yann@1026
   128
        fi
yann@1026
   129
        printf "|  ${CT_THREADS:-none}  "
yann@2762
   130
        printf "|  ${CT_ARCH_FLOAT}  "
yann@649
   131
        printf "|  C"
yann@649
   132
        [ "${CT_CC_LANG_CXX}" = "y"     ] && printf ", C++"
yann@649
   133
        [ "${CT_CC_LANG_FORTRAN}" = "y" ] && printf ", Fortran"
yann@649
   134
        [ "${CT_CC_LANG_JAVA}" = "y"    ] && printf ", Java"
yann@649
   135
        [ "${CT_CC_LANG_ADA}" = "y"     ] && printf ", ADA"
yann@649
   136
        [ "${CT_CC_LANG_OBJC}" = "y"    ] && printf ", Objective-C"
yann@649
   137
        [ "${CT_CC_LANG_OBJCXX}" = "y"  ] && printf ", Objective-C++"
yann@649
   138
        [ -n "${CT_CC_LANG_OTHERS}"     ] && printf "\\\\\\\\ Others: ${CT_CC_LANG_OTHERS}"
yann@691
   139
        printf "  "
yann@935
   140
        ( . "${sample_top}/samples/${sample}/reported.by"
yann@935
   141
          if [ -n "${reporter_name}" ]; then
yann@617
   142
              if [ -n "${reporter_url}" ]; then
yann@642
   143
                  printf "|  [[${reporter_url}|${reporter_name}]]  "
yann@617
   144
              else
yann@642
   145
                  printf "|  ${reporter_name}  "
yann@617
   146
              fi
yann@935
   147
          else
yann@2725
   148
              printf "|  (//unknown//)  "
yann@935
   149
          fi
yann@935
   150
        )
yann@1427
   151
        sample_updated="$( hg log -l 1 --template '{date|shortdate}' "${sample_top}/samples/${sample}" )"
yann@750
   152
        printf "|  ${sample_updated}  "
yann@560
   153
        echo "|"
yann@474
   154
    fi
yann@74
   155
}
yann@74
   156
yann@3012
   157
if [ "${opt}" = "-w" -a ${#} -eq 0 ]; then
yann@1659
   158
    printf "^ %s  |||||||||||||||\n" "$( date "+%Y%m%d.%H%M %z" )"
yann@1658
   159
    printf "^ Target  "
yann@1658
   160
    printf "^ Host  "
yann@828
   161
    printf "^  Status  "
yann@691
   162
    printf "^  Kernel headers\\\\\\\\ version  ^"
yann@851
   163
    printf "^  binutils\\\\\\\\ version  "
yann@691
   164
    printf "^  C compiler\\\\\\\\ version  ^"
yann@851
   165
    printf "^  C library\\\\\\\\ version  ^"
yann@851
   166
    printf "^  Threading\\\\\\\\ model  "
yann@651
   167
    printf "^  Floating point\\\\\\\\ support  "
yann@651
   168
    printf "^  Languages  "
yann@750
   169
    printf "^  Initially\\\\\\\\ reported by  "
yann@750
   170
    printf "^  Last\\\\\\\\ updated  "
yann@642
   171
    echo   "^"
yann@3012
   172
    exit 0
yann@3012
   173
elif [ "${opt}" = "-W" ]; then
yann@3012
   174
    printf "^ Total: ${#} samples  || **X**: sample uses features marked as being EXPERIMENTAL.\\\\\\\\ **B**: sample is currently BROKEN. |||||||||||||"
yann@3012
   175
    echo   ""
yann@3012
   176
    exit 0
yann@560
   177
fi
yann@724
   178
yann@74
   179
for sample in "${@}"; do
yann@3012
   180
    ( dump_single_sample ${opt} "${sample}" )
yann@1682
   181
done