On Tue, Jun 29, 2021 at 09:32:47AM +0200, Vyacheslav Yurkov wrote: > From: Vyacheslav Yurkov <Vyacheslav.Yurkov@xxxxxxxxxx> > > This reverts commit da7916f72206750cce0d0d306d3ba9094a375880. > > Old install-sh fails in cross-compilation environments like yocto. This install-sh has been used for performance reason, I'd like keep it if possible. Would you please describe the failures you hit in cross-compilation env? It'd be great if we could fix the env issue. Thanks, Eryu > > Signed-off-by: Vyacheslav Yurkov <Vyacheslav.Yurkov@xxxxxxxxxx> > --- > Makefile | 1 - > include/install-sh | 352 --------------------------------------------- > 2 files changed, 353 deletions(-) > delete mode 100755 include/install-sh > > diff --git a/Makefile b/Makefile > index 86a2d399..c52daeb8 100644 > --- a/Makefile > +++ b/Makefile > @@ -61,7 +61,6 @@ endif > > configure: configure.ac > libtoolize -cfi > - cp include/install-sh . > aclocal -I m4 > autoheader > autoconf > diff --git a/include/install-sh b/include/install-sh > deleted file mode 100755 > index a19cbe31..00000000 > --- a/include/install-sh > +++ /dev/null > @@ -1,352 +0,0 @@ > -#! /bin/bash > -# > -# SPDX-License-Identifier: GPL-2.0 > -# Copyright (c) 2000-2001 Silicon Graphics, Inc. All Rights Reserved. > -# > -# This script emulates bsd install and also recognises > -# two environment variables, with the following semantics :- > -# > -# $DIST_MANIFEST - if set, the name of the file to append manifest > -# information in the following format: > -# File : f mode owner group src target > -# Directory: d mode owner group target > -# Symlink : l linkval target > -# > -# $DIST_ROOT - if set, prepend to target > -# > -# The sematics of all combinations of these two variables > -# are as follows: > -# > -# $DIST_MANIFEST? $DIST_ROOT? | Copy? Append Manifest? > -# -----------------------------+-------------------------- > -# not set not set | yes no > -# not set set | yes no > -# set not set | no yes > -# set set | yes yes > -# > -_usage() { > - echo "Usage: $prog [-o owner] [-g group] [-m mode] -d directory" > - echo "or $prog [-D] [-o owner] [-g group] [-m mode] file directory/file" > - echo "or $prog [-o owner] [-g group] [-m mode] file [file ...] directory" > - echo "or $prog -S file target (creates \"target\" symlink)" > - echo "or $prog -T lt_arg [-o owner] [-g group] [-m mode] libtool.lai directory" > - echo "" > - echo "The \$DIST_MANIFEST and \$DIST_ROOT environment variables affect the" > - echo "behaviour of this command - see comments in the script." > - echo "The -D flag is only available for the second usage, and causes" > - echo "the target directory to be created before installing the file." > - echo "" > - exit 1 > -} > - > -_chown () > -{ > - _st=255 > - if [ $# -eq 3 ] ; then > - chown $1:$2 $3 > - _st=$? > - if [ $_st -ne 0 ] ; then > - if [ $REAL_UID != '0' ] ; then > - if [ ! -f $DIST_ROOT/.chown.quiet ] ; then > - echo '===============================================' > - echo Ownership of files under ${DIST_ROOT:-/} > - echo cannot be changed > - echo '===============================================' > - if [ -n "$DIST_ROOT" ] ; then > - touch $DIST_ROOT/.chown.quiet > - fi > - fi > - _st=0 > - fi > - fi > - fi > - > - return $_st > -} > - > - > -_manifest () > -{ > - echo $* | sed -e 's/\/\//\//g' >>${DIST_MANIFEST:-/dev/null} > -} > - > -prog=`basename $0` > -HERE=`pwd` > -dflag=false > -Dflag=false > -Sflag=false > -Tflag=false > -DIRMODE=755 > -FILEMODE=644 > -OWNER=`id -u` > -GROUP=`id -g` > -REAL_UID=$OWNER > - > -# default is to install and don't append manifest > -INSTALL=true > -MANIFEST=: > - > -: ${DIST_ROOT:=${DESTDIR}} > - > -[ -n "$DIST_MANIFEST" -a -z "$DIST_ROOT" ] && INSTALL=false > -[ -n "$DIST_MANIFEST" ] && MANIFEST="_manifest" > - > -[ $# -eq 0 ] && _usage > - > -if $INSTALL > -then > - CP=cp; LN=ln; MKDIR=mkdir; CHMOD=chmod; CHOWN=_chown > -else > - CP=true; LN=true; MKDIR=true; CHMOD=true; CHOWN=true > -fi > - > -[ -n "$DIST_ROOT" -a $REAL_UID -ne 0 ] && CHOWN=true > - > -while getopts "Dcm:d:S:o:g:T:" c $* > -do > - case $c in > - c) > - ;; > - g) > - GROUP=$OPTARG > - ;; > - o) > - OWNER=$OPTARG > - ;; > - m) > - DIRMODE=`expr $OPTARG` > - FILEMODE=$DIRMODE > - ;; > - D) > - Dflag=true > - ;; > - S) > - symlink=$OPTARG > - Sflag=true > - ;; > - d) > - dir=$DIST_ROOT/$OPTARG > - dflag=true > - ;; > - T) > - lt_install=$OPTARG > - Tflag=true > - ;; > - *) > - _usage > - ;; > - esac > -done > - > -shift `expr $OPTIND - 1` > - > -status=0 > -if $dflag > -then > - # > - # first usage > - # > - $MKDIR -p $dir > - status=$? > - if [ $status -eq 0 ] > - then > - $CHMOD $DIRMODE $dir > - status=$? > - fi > - if [ $status -eq 0 ] > - then > - $CHOWN $OWNER $GROUP $dir > - status=$? > - fi > - $MANIFEST d $DIRMODE $OWNER $GROUP ${dir#$DIST_ROOT} > -elif $Sflag > -then > - # > - # fourth usage (symlink) > - # > - if [ $# -ne 1 ] > - then > - _usage > - else > - target=$DIST_ROOT/$1 > - fi > - $LN -s -f $symlink $target > - status=$? > - $MANIFEST l $symlink ${target#$DIST_ROOT} > -elif $Tflag > -then > - # > - # -T (install libs built by libtool) > - # > - if [ $# -ne 2 ] > - then > - _usage > - else > - libtool_lai=$1 > - # source the libtool variables > - if [ ! -f $libtool_lai ] > - then > - echo "$prog: Unable to find libtool library file $libtool_lai" > - exit 2 > - fi > - . ./$libtool_lai > - target=$DIST_ROOT/$2 > - fi > - case $lt_install in > - so_dot_version) > - # Loop until we find libfoo.so.x.y.z, then break out. > - for solib in $library_names > - do > - # does it have enough parts? libfoo.so.x.y.z == 5 > - cnt=`echo "$solib" | sed -e 's/\./ /g' | wc -w` > - if [ $cnt -eq 5 ] > - then > - install_name=$target/$solib > - $CP $solib $install_name > - status=$? > - $MANIFEST f $FILEMODE $OWNER $GROUP $HERE/$solib ${install_name#$DIST_ROOT} > - break > - fi > - done > - ;; > - > - so_*) > - case $lt_install in > - so_dot_current) > - # ln -s libfoo.so.x.y.z to libfoo.so.x > - from_parts=5 # libfoo.so.x.y.z > - to_parts=3 # libfoo.so.x > - ;; > - so_base) > - # ln -s libfoo.so.x to libfoo.so > - from_parts=3 # libfoo.so.x > - to_parts=2 # libfoo.so > - ;; > - *) > - echo "$prog: -T $lt_install invalid" > - exit 2 > - ;; > - esac > - > - # Loop until we find the names, then break out. > - for solib in $library_names > - do > - # does it have enough parts? > - cnt=`echo "$solib" | sed -e 's/\./ /g' | wc -w` > - if [ $cnt -eq $from_parts ] > - then > - from_name=$solib > - elif [ $cnt -eq $to_parts ] > - then > - to_name=$solib > - fi > - > - if [ -n "$from_name" ] && [ -n "$to_name" ] > - then > - install_name=$target/$to_name > - $LN -s -f $from_name $install_name > - status=$? > - $MANIFEST l $from_name ${install_name#$DIST_ROOT} > - break > - fi > - done > - ;; > - old_lib) > - install_name=$target/$old_library > - $CP $old_library $install_name > - status=$? > - $MANIFEST f $FILEMODE $OWNER $GROUP $HERE/$old_library ${install_name#$DIST_ROOT} > - ;; > - *) > - echo "$prog: -T $lt_install invalid" > - exit 2 > - ;; > - esac > - > - case $lt_install in > - old_lib|so_dot_version) > - if [ $status -eq 0 ] > - then > - $CHMOD $FILEMODE $install_name > - $CHOWN $OWNER $GROUP $install_name > - fi > - ;; > - esac > - > -else > - list="" > - dir="" > - if [ $# -eq 2 ] > - then > - # > - # second usage > - # > - f=$1 > - dir=$DIST_ROOT/$2 > - if $Dflag > - then > - mkdir -p `dirname $dir` > - fi > - $CP $f $dir > - status=$? > - if [ $status -eq 0 ] > - then > - if [ -f $dir/$f ] > - then > - $CHMOD $FILEMODE $dir/$f > - status=$? > - if [ $status -eq 0 ] > - then > - $CHOWN $OWNER $GROUP $dir/$f > - status=$? > - fi > - $MANIFEST f $FILEMODE $OWNER $GROUP $HERE/$f ${dir#$DIST_ROOT}/$f > - else > - $CHMOD $FILEMODE $dir > - status=$? > - if [ $status -eq 0 ] > - then > - $CHOWN $OWNER $GROUP $dir > - status=$? > - fi > - $MANIFEST f $FILEMODE $OWNER $GROUP $HERE/$dir ${dir#$DIST_ROOT} > - fi > - fi > - else > - # > - # third usage > - # > - n=1 > - while [ $# -gt 0 ] > - do > - if [ $# -gt 1 ] > - then > - list="$list $1" > - else > - dir=$DIST_ROOT/$1 > - fi > - shift > - done > - > - # echo DIR=$dir list=\"$list\" > - for f in $list > - do > - $CP $f $dir > - status=$? > - if [ $status -eq 0 ] > - then > - $CHMOD $FILEMODE $dir/$f > - status=$? > - if [ $status -eq 0 ] > - then > - $CHOWN $OWNER $GROUP $dir/$f > - status=$? > - fi > - $MANIFEST f $FILEMODE $OWNER $GROUP $HERE/$f ${dir#$DIST_ROOT}/$f > - fi > - [ $status -ne 0 ] && break > - done > - fi > -fi > - > -exit $status > -- > 2.25.1