Hi everyone,

Upstream gnu.org used to provide .gz and .bz2 compressed tarballs for
gcc's source code.  With gcc-6.4.0 however, they only provide .gz and
.xz.  Our toolchain.eclass is written only for .bz2.  I'd like to commit
the attached patch to deal with this change.  A better fix would
autodetect whether upstream has .bz2 or .xz but I'm not sure how to
proceed with that.

-- 
Anthony G. Basile, Ph.D.
Gentoo Linux Developer [Hardened]
E-Mail    : bluen...@gentoo.org
GnuPG FP  : 1FED FAD9 D82C 52A5 3BAB  DC79 9384 FA6E F52D 4BBA
GnuPG ID  : F52D4BBA
diff --git a/eclass/toolchain.eclass b/eclass/toolchain.eclass
index db6e643148c..3114bd85832 100644
--- a/eclass/toolchain.eclass
+++ b/eclass/toolchain.eclass
@@ -320,7 +320,11 @@ get_gcc_src_uri() {
        elif [[ -n ${SNAPSHOT} ]] ; then
                
GCC_SRC_URI="ftp://gcc.gnu.org/pub/gcc/snapshots/${SNAPSHOT}/gcc-${SNAPSHOT}.tar.bz2";
        else
-               
GCC_SRC_URI="mirror://gnu/gcc/gcc-${GCC_PV}/gcc-${GCC_RELEASE_VER}.tar.bz2"
+               if tc_version_is_between 6.4.0 7 ;  then
+                       
GCC_SRC_URI="mirror://gnu/gcc/gcc-${GCC_PV}/gcc-${GCC_RELEASE_VER}.tar.xz"
+               else
+                       
GCC_SRC_URI="mirror://gnu/gcc/gcc-${GCC_PV}/gcc-${GCC_RELEASE_VER}.tar.bz2"
+               fi
                # we want all branch updates to be against the main release
                [[ -n ${BRANCH_UPDATE} ]] && \
                        GCC_SRC_URI+=" $(gentoo_urls 
gcc-${GCC_RELEASE_VER}-branch-update-${BRANCH_UPDATE}.patch.bz2)"
@@ -424,7 +428,11 @@ gcc_quick_unpack() {
        elif [[ -n ${SNAPSHOT} ]] ; then
                unpack gcc-${SNAPSHOT}.tar.bz2
        elif [[ ${PV} != *9999* ]] ; then
-               unpack gcc-${GCC_RELEASE_VER}.tar.bz2
+               if tc_version_is_between 6.4.0 7 ;  then
+                       unpack gcc-${GCC_RELEASE_VER}.tar.xz
+               else
+                       unpack gcc-${GCC_RELEASE_VER}.tar.bz2
+               fi
                # We want branch updates to be against a release tarball
                if [[ -n ${BRANCH_UPDATE} ]] ; then
                        pushd "${S}" > /dev/null

Reply via email to