RE: [PATCH] Revert "build: Use the original install-sh file from SGI"

[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]



There are several errors I was getting actually. The first one is something like this:

> | configure: error: cannot run /bin/bash ./../config.sub

The problem is that yocto/oe build system has distinct stages like fetch/configure/compile/install/etc, and this error occurs during the configure stage when it tries to run automake/autoconf.

When I prepend configure stage with copying of include/install-sh, it passes further, but fails at install stage with the errors like:

Usage: build/tmp/work/corei7-64-oe-linux/xfstests/git-r0/git/x86_64-oe-linux-libtool [OPTION]... [MODE-ARG]...
Try 'x86_64-oe-linux-libtool --help' for more information.
x86_64-oe-linux-libtool:   error: 'build/tmp/work/corei7-64-oe-linux/xfstests/git-r0/image/usr/xfstests/src' is not a directory
make[1]: *** [Makefile:102: install] Error 1

So I honestly didn't look into what's failing there. Using up-to-date scripts just fixed the issue for me. I could keep the patch in my yocto BSP then if you don't like it.

Thanks,
Vyacheslav


- confidential -

> -----Original Message-----
> From: Eryu Guan <guaneryu@xxxxxxxxx>
> Sent: Sunday, July 4, 2021 11:44
> To: Vyacheslav Yurkov <uvv.mail@xxxxxxxxx>
> Cc: fstests@xxxxxxxxxxxxxxx; Yurkov, Vyacheslav
> <Vyacheslav.Yurkov@xxxxxxxxxx>
> Subject: Re: [PATCH] Revert "build: Use the original install-sh file from SGI"
> 
> **EXTERNAL EMAIL**
> 
> 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



[Index of Archives]     [Linux Filesystems Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux