Uploaded image for project: 'Funtoo Linux'
  1. Funtoo Linux
  2. FL-2457

crossdev-20140917 thru 20150525 no longer functioning

    • Icon: Bug Bug
    • Resolution: Workaround
    • Icon: Normal Normal
    • None
    • None
    • None

      For some time now the newer crossdev versions have a problem with portage in Funtoo. With the versions listed I get this:

      # crossdev --b 2.25-r1 --g 4.9.1 --k 4.0 --l 2.19 --target i686-pc-linux-gnu -P -v
      ERROR: Invalid atom: '/'
       * You need to specify an output overlay.  Please use --ov-output, or consult
       * https://wiki.gentoo.org/wiki/Overlay/Local_overlay for more details.
      

      Yet if I downgrade to version 20140719 the same command line operates properly. That command line has the proper syntax.
      Since I had 20140719 on one machine and 20150525 on another I did a diff to see what had changed (most of crossdev is contained in /usr/share/crossdev):

      I did the diff's backwards (sorry), the newer version is the -, older is the +
      
      # diff -u -r . /mnt/nfs/borg/usr/share/crossdev
      diff -u -r ./include/site/linux /mnt/nfs/borg/usr/share/crossdev/include/site/linux
      --- ./include/site/linux	2015-05-25 02:51:12.000000000 -0700
      +++ /mnt/nfs/borg/usr/share/crossdev/include/site/linux	2014-07-28 22:50:38.000000000 -0700
      @@ -30,8 +30,6 @@
       
       
       ac_cv_file__bin_bash=yes
      -ac_cv_file__dev_ptmx=yes
      -ac_cv_file__dev_ptc=no
       ac_cv_file__dev_srandom=yes
       ac_cv_file__dev_urandom=yes
       ac_cv_file__dev_random=yes
      diff -u -r ./include/site/linux-gnueabi /mnt/nfs/borg/usr/share/crossdev/include/site/linux-gnueabi
      --- ./include/site/linux-gnueabi	2015-05-25 02:51:12.000000000 -0700
      +++ /mnt/nfs/borg/usr/share/crossdev/include/site/linux-gnueabi	2014-07-28 22:50:38.000000000 -0700
      @@ -294,4 +294,8 @@
       
       
       # enca
      +ac_cv_file__dev_srandom=yes
      +ac_cv_file__dev_urandom=yes
      +ac_cv_file__dev_random=yes
      +ac_cv_file__dev_arandom=no
       yeti_cv_func_scanf_modif_size_t=z
      

      And other individual files in /usr/bin:

      # diff -u ./cross-emerge /mnt/nfs/borg/usr/bin/cross-emerge
      --- ./cross-emerge	2015-05-26 05:21:58.619901807 -0700
      +++ /mnt/nfs/borg/usr/bin/cross-emerge	2014-11-01 18:01:36.000000000 -0700
      @@ -30,5 +30,10 @@
       : ${BUILD_CPPFLAGS=${_E_CPPFLAGS}}
       export CBUILD BUILD_CFLAGS BUILD_CXXFLAGS BUILD_CPPFLAGS
       
      +FAKEROOT=
      +if [ $(id -u) -ne 0 ] ; then
      +	type -P fakeroot >/dev/null && FAKEROOT=fakeroot
      +fi
      +
       : ${CROSS_CMD:=emerge --root-deps=rdeps}
      -exec ${CROSS_CMD} "$@"
      +exec ${FAKEROOT} ${CROSS_CMD} "$[~divinespear]
      
      # diff -u ./cross-fix-root /mnt/nfs/borg/usr/bin/cross-fix-root
      # 
      
      # diff -u ./cross-pkg-config /mnt/nfs/borg/usr/bin/cross-pkg-config
      --- ./cross-pkg-config	2015-05-26 05:21:58.620901789 -0700
      +++ /mnt/nfs/borg/usr/bin/cross-pkg-config	2014-11-01 18:01:36.000000000 -0700
      @@ -82,12 +82,12 @@
       #
       : ${ABI:=${DEFAULT_ABI:-default}}
       var="LIBDIR_${ABI}"
      -eval libdir=\${${var}}
      +libdir=${!var}
       if [ -z "${libdir}" ] ; then
       	# Fall back to probing the compiler.
      -	libdir=$(realpath "$(${CC:-${CHOST}-gcc} ${CFLAGS} ${LDFLAGS} -print-file-name=pkgconfig)/..")
      +	libc=$(realpath $(${CC:-${CHOST}-gcc} ${CFLAGS} ${LDFLAGS} -print-file-name=libc.so))
       	# Chopping the basename isn't exactly correct, but it's good enough for now.
      -	libdir=$(basename "${libdir}")
      +	libdir=$(basename "${libc%/*}")
       fi
       : ${libdir:=lib}
       export PKG_CONFIG_SYSTEM_LIBRARY_PATH="/usr/${libdir}:/${libdir}"
      
      # diff -u ./emerge-wrapper /mnt/nfs/borg/usr/bin/emerge-wrapper
      --- ./emerge-wrapper	2015-05-26 05:21:58.629901625 -0700
      +++ /mnt/nfs/borg/usr/bin/emerge-wrapper	2014-11-01 18:01:36.000000000 -0700
      @@ -21,13 +21,11 @@
       
       emit_setup_warning()
       {
      -	if ! ${setup_warning} ; then
      -		setup_warning=true
      -		echo "!!! WARNING - Cannot auto-configure CHOST ${CHOST};"
      -		echo "!!! You should edit ${conf}"
      -		echo "!!! by hand to complete your configuration."
      -	fi
      -	echo "!!!  $*"
      +	${setup_warning:-false} && return 0
      +	setup_warning=true
      +	echo "!!! WARNING - Cannot auto-configure CHOST ${CHOST}"
      +	echo "!!! You should edit ${conf}"
      +	echo "!!! by hand to complete your configuration"
       }
       
       cross_wrap_etc()
      @@ -43,17 +41,16 @@
       	# Re-use existing CHOST->portage ARCH mapping code
       	ARCH=$(
       		inherit() { :; }
      -		. "${MAIN_REPO_PATH}"/eclass/toolchain-funcs.eclass
      +		. "${PORTDIR}"/eclass/toolchain-funcs.eclass
       		tc-arch
       	)
      -	[[ ${ARCH} == "unknown" ]] && emit_setup_warning "No ARCH is known for this target."
      +	[[ ${ARCH} == "unknown" ]] && emit_setup_warning
       
       	LIBC="__LIBC__"
       	case ${CHOST} in
      -	*gnu*)    LIBC=glibc ;;
      -	*uclibc*) LIBC=uclibc ;;
      -	*mingw*)  LIBC=mingw ;;
      -	*)        emit_setup_warning "No LIBC is known for this target." ;;
      +		*gnu*)    LIBC=glibc ;;
      +		*uclibc*) LIBC=uclibc ;;
      +		*)        emit_setup_warning ;;
       	esac
       
       	sed -i \
      @@ -112,12 +109,10 @@
       
       # CBUILD must be the first thing we export, but might as well avoid
       # running portageq multiple times ...
      -import_vars="DISTDIR MAKEOPTS GENTOO_MIRRORS"
      +import_vars="PORTDIR DISTDIR PORTDIR_OVERLAY MAKEOPTS GENTOO_MIRRORS"
       eval $(portageq envvar -v CBUILD ${import_vars})
       export CBUILD
       
      -MAIN_REPO_PATH=$(crossdev --show-repo-cfg MAIN_REPO_PATH)
      -
       # Get default CHOST value from program name
       CHOST=${0##*/}
       CHOST=${CHOST%-emerge}
      

      Many differences in /usr/bin/crossdev, so I have pasted that elsewhere:
      http://pasted.co/f1910b40
      This bug is different from the issue being discussed in FL-1820, which is regarding gcc incompatibility with crossdev, with a known method of defeating.
      I am posting this bug for informational purposes, I'm not sure anything can be done about it. Using the 20140719 version is a workaround for now.

            Unassigned Unassigned
            sputnik sputnik
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated:
              Resolved: