This file is indexed.

/usr/bin/smpiff is in libsimgrid-dev 3.11.1-10ubuntu1.

This file is owned by root:root, with mode 0o755.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
#! /bin/sh

# Copyright (c) 2010-2014. The SimGrid Team.
# All rights reserved.

# This program is free software; you can redistribute it and/or modify it
# under the terms of the license (GNU LGPL) which comes with this package.

prefix="/usr"
smpicc="$prefix/bin/smpicc"
smpif2c="$prefix/bin/smpif2c"

#!/bin/sh
#---- smpitools.sh --------------------------------------------------------#

# Copyright (c) 2013-2014. The SimGrid Team.
# All rights reserved.

# This program is free software; you can redistribute it and/or modify it
# under the terms of the license (GNU LGPL) which comes with this package.

SAVEIFS="$IFS"
LISTSEP="$(printf '\b')"

# Create a temporary file, with its name of the form $1_XXX$2, where XXX is
# replaced by an unique string.
# $1: prefix, $2: suffix
mymktemp () {
    tmp=$(mktemp --suffix="$2" "$1_XXXXXXXXXX" 2> /dev/null)
    if [ -z "$tmp" ]; then
        # mktemp failed (unsupported --suffix ?), try unsafe mode
        tmp=$(mktemp -u "$1_XXXXXXXXXX" 2> /dev/null)
        if [ -z "$tmp" ]; then
            # mktemp failed again (doesn't exist ?), try very unsafe mode
            if [ -z "${mymktemp_seq}" ]; then
                mymktemp_seq=$(date +%d%H%M%S)
            fi
            tmp="$1_$$x${mymktemp_seq}"
            mymktemp_seq=$((mymktemp_seq + 1))
        fi
        tmp="${tmp}$2"
        # create temp file, and exit if it existed before
        sh -C -c "true > \"${tmp}\"" || exit 1
    fi
    echo "${tmp}"
}

# Add a word to the end of a list (words separated by LISTSEP)
# $1: list, $2...: words to add
list_add () {
    local list content newcontent
    list="$1"
    shift
    if [ $# -gt 0 ]; then
        eval content=\"\${$list}\"
        IFS="$LISTSEP"
        newcontent="$*"
        IFS="$SAVEIFS"
        if [ -z "$content" ]; then
            content="$newcontent"
        else
            content="$content${LISTSEP}$newcontent"
        fi
        eval $list=\"\${content}\"
    fi
}

# Like list_add, but only if first word to add ($2) is not empty
list_add_not_empty () {
    if [ -n "$2" ]; then
        list_add "$@"
    fi
}

# Set contents of a list (words separated by LISTSEP)
# $1: list, $2...: words to set
list_set () {
    eval $1=""
    list_add "$@"
}

# Get the content of a list: positional parameters ($1, $2, ...) are set to the
# content of the list
# $1: list
# usage:  eval $(list_get list)
list_get () {
    printf 'IFS="$LISTSEP"; eval set -- \\$%s; IFS="$SAVEIFS"' "$1"
}

#---- end of smpitools.sh -------------------------------------------------#


list_set ARGS "-DMAIN__=user_main" "-Diargc_=smpi_process_argc" "-Dgetarg_=smpi_process_getarg"
list_set LINKARGS "-L/usr/lib" "-lf2c" "-lm"
list_set SRCFILES

while [ $# -gt 0 ]; do
    ARG="$1"
    shift
    case "${ARG}" in
        *.f)
            SRCFILE="$(readlink -f ${ARG} 2>/dev/null)"
            if [ -z "$SRCFILE" ] ; then
                SRCFILE="$ARG"
            fi
            list_add SRCFILES "${SRCFILE}"
            ;;
        *)
            if [ "${ARG}" = "-c" ]; then
                LINKARGS=""
            fi
            list_add ARGS "${ARG}"
            ;;
    esac
done
list_add_not_empty ARGS "${LINKARGS}"

build () {
    local SRCFILE
    SRCFILE="$1"
    TMPFILE=$(mymktemp "${SRCFILE}" ".f")
    CFILE="${TMPFILE%.f}.c"

    eval $(list_get ARGS)

    cp "${SRCFILE}" "${TMPFILE}" \
        && "$smpif2c" "${TMPFILE}" \
        && "$smpicc" "$@" "${CFILE}" \
        && rm -f "${CFILE}" \
        && rm -f "${TMPFILE}" \
        || exit $?

    # When the file is compiled with "-c" and no output file is specified with
    # "-o", rename the output.  FIXME: do it properly.
    if [ -f "${CFILE%.c}.o" ]; then
        mv "${CFILE%.c}.o" "${SRCFILE%.f}.o"
    fi
}

if [ -n "${SRCFILES}" ]; then
    eval $(list_get SRCFILES)
    for SRCFILE in "$@"; do
        build "$SRCFILE"
    done
else
    eval $(list_get ARGS)
    "$smpicc" "$@"
fi