diff --git a/srcpkgs/gcc/template b/srcpkgs/gcc/template index 069b66a11f2..6774b8a5826 100644 --- a/srcpkgs/gcc/template +++ b/srcpkgs/gcc/template @@ -31,7 +31,13 @@ lib32disabled=yes bootstrap=yes replaces="gcc-gcj<7.2.0 gcc-gcj-jdk-compat<7.2.0 libmpx>=0 libmpx-devel>=0" alternatives="cc:cc:/usr/bin/gcc" -nocross=yes + +_have_gccgo=yes + +# MIPS does not have libucontext yet +case "$XBPS_TARGET_MACHINE" in + mips*-musl) _have_gccgo=no ;; +esac if [ "$CHROOT_READY" ]; then hostmakedepends="perl flex" @@ -68,8 +74,8 @@ fi if [ "$CHROOT_READY" ]; then subpackages+=" gcc-fortran libgfortran-devel libgfortran" - if [ -z "$CROSS_BUILD" ]; then - subpackages+=" gcc-objc gcc-objc++ libobjc-devel libobjc" + subpackages+=" gcc-objc gcc-objc++ libobjc-devel libobjc" + if [ "$_have_gccgo" = "yes" ]; then subpackages+=" gcc-go gcc-go-tools libgo-devel libgo" # we need this for gcc-go on musl if [ "$XBPS_TARGET_LIBC" = "musl" ]; then @@ -129,7 +135,6 @@ case "$XBPS_TARGET_MACHINE" in esac if [ "$CROSS_BUILD" ]; then hostmakedepends+=" cross-${_triplet}" - export GFORTRAN_FOR_TARGET=" ${_triplet}-gfortran" if [ "$build_option_ada" ]; then hostmakedepends+=" gcc-ada libada-devel" fi @@ -219,20 +224,26 @@ do_configure() { export CC_FOR_TARGET="$CC" export GCC_FOR_TARGET="$CC" export CXX_FOR_TARGET="$CXX" + export GOC_FOR_TARGET="${_triplet}-gccgo" + export GFORTRAN_FOR_TARGET="${_triplet}-gfortran" _args+=" --host=$XBPS_CROSS_TRIPLET" _args+=" --with-build-sysroot=${XBPS_CROSS_BASE}" _args+=" --enable-sjlj-exceptions=no" - _langs+=",fortran" + _langs+=",objc,obj-c++,fortran" elif [ -z "$CHROOT_READY" ]; then export LD_LIBRARY_PATH="${XBPS_MASTERDIR}/usr/lib" _args+=" --build=${_triplet}" else - _langs="c,c++,objc,obj-c++,go,fortran,lto" + _langs="c,c++,objc,obj-c++,fortran,lto" _args+=" --build=${_triplet}" _args+=" --enable-fast-character" fi + if [ "$_have_gccgo" = "yes" ]; then + _langs+=",go" + fi + case "$XBPS_TARGET_MACHINE" in *-musl) _args+=" --disable-libsanitizer";; esac