"Fossies" - the Fresh Open Source Software Archive

Member "xterm-379/plink.sh" (13 Mar 2022, 2780 Bytes) of package /linux/misc/xterm-379.tgz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) Bash source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file. See also the last Fossies "Diffs" side-by-side code changes report for "plink.sh": 372_vs_373.

    1 #!/bin/sh
    2 # $XTermId: plink.sh,v 1.17 2022/03/13 18:27:29 Ryan.Schmidt Exp $
    3 # -----------------------------------------------------------------------------
    4 # this file is part of xterm
    5 #
    6 # Copyright 2001-2021,2022 by Thomas E. Dickey
    7 #
    8 #                         All Rights Reserved
    9 #
   10 # Permission is hereby granted, free of charge, to any person obtaining a
   11 # copy of this software and associated documentation files (the
   12 # "Software"), to deal in the Software without restriction, including
   13 # without limitation the rights to use, copy, modify, merge, publish,
   14 # distribute, sublicense, and/or sell copies of the Software, and to
   15 # permit persons to whom the Software is furnished to do so, subject to
   16 # the following conditions:
   17 #
   18 # The above copyright notice and this permission notice shall be included
   19 # in all copies or substantial portions of the Software.
   20 #
   21 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
   22 # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
   23 # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
   24 # IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
   25 # CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
   26 # TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
   27 # SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
   28 #
   29 # Except as contained in this notice, the name(s) of the above copyright
   30 # holders shall not be used in advertising or otherwise to promote the
   31 # sale, use or other dealings in this Software without prior written
   32 # authorization.
   33 # -----------------------------------------------------------------------------
   34 #
   35 # Reduce the number of dynamic libraries used to link an executable.
   36 LINKIT=
   37 ASNEED=no
   38 NO_LTO=
   39 
   40 # gcc's link-time optimization is very slow - reduce usage of that.
   41 case "$*" in
   42 *-flto=*|-flto\ )
   43     NO_LTO=-fno-lto
   44     ;;
   45 esac
   46 
   47 : "${TMPDIR=/tmp}"
   48 
   49 while [ $# != 0 ]
   50 do
   51     if [ $ASNEED = no ] && [ -n "$LINKIT" ]
   52     then
   53         ASNEED=yes
   54         OPT=-Wl,-as-needed
   55         warned=`mktemp "$TMPDIR/xterm.XXXXXXXX"`
   56         trap "rm -f $warned; exit 1" 1 2 3 15
   57         trap "rm -f $warned" 0
   58         if ( eval $LINKIT $OPT $NO_LTO "$@" >"$warned" 2>&1 )
   59         then
   60             WARNED=`cat "$warned"`
   61             rm -f "$warned"
   62             case ".$WARNED" in
   63             *Warning*|*nsupported*|*nrecognized*|*nknown*)
   64                 ;;
   65             *)
   66                 LINKIT="$LINKIT $OPT $*"
   67                 break
   68                 ;;
   69             esac
   70         else
   71             rm -f "$warned"
   72         fi
   73     fi
   74 
   75     OPT="$1"
   76     shift
   77     case $OPT in
   78     -k*)
   79         OPT=`echo "$OPT" | sed -e 's/^-k/-l/'`
   80         echo "always use $OPT (cannot test if needed)"
   81         LINKIT="$LINKIT $OPT"
   82         ;;
   83     -l*)
   84         echo "testing if $OPT is needed"
   85         if ( eval $LINKIT $NO_LTO "$@" >/dev/null 2>&1 )
   86         then
   87             : echo ...no
   88         else
   89             echo ...yes
   90             LINKIT="$LINKIT $OPT"
   91         fi
   92         ;;
   93     *)
   94         LINKIT="$LINKIT $OPT"
   95         ;;
   96     esac
   97 done
   98 eval $LINKIT