binutils fails with: configure: updating cache ./config.cache configure: creating ./config.status config.status: creating Makefile config.status: creating po/Makefile.in config.status: WARNING: '/usr/opt/gentoo/var/tmp/portage/sys-devel/binutils-2.20.51.0.1/work/binutils-2.20.51.0.1/opcodes/po/Make-in' seems to ignore the --datarootdir setting config.status: creating config.h config.status: executing depfiles commands config.status: executing libtool commands config.status: executing default-1 commands config.status: creating po/POTFILES config.status: creating po/Makefile make[2]: Entering directory `/usr/opt/gentoo/var/tmp/portage/sys-devel/binutils-2.20.51.0.1/work/build/opcodes' Makefile:1300: *** multiple target patterns. Stop. make[2]: Leaving directory `/usr/opt/gentoo/var/tmp/portage/sys-devel/binutils-2.20.51.0.1/work/build/opcodes' make[1]: *** [all-opcodes] Error 2 make[1]: Leaving directory `/usr/opt/gentoo/var/tmp/portage/sys-devel/binutils-2.20.51.0.1/work/build' make: *** [all] Error 2 * ERROR: sys-devel/binutils-2.20.51.0.1 failed: * emake failed * * Call stack: * ebuild.sh: 51: <call call-ebuildshell 'src_compile'> * environment: 668: <call src_compile> * environment:3393: <call toolchain-binutils_src_compile> * environment:4061: emake all || die "emake failed"; ... and line 1300 reads: i386-gen$(EXEEXT_FOR_BUILD): i386-gen.o $(BUILD_LIBIBERTY) $(BUILD_LIBINTL) $(LINK_FOR_BUILD) i386-gen.o $(BUILD_LIBIBERTY) $(BUILD_LIBINTL) If this and the following directive are commented out, the same error occurs on line 1317 and 1339. Is this a problem with the value of $(LINK_FOR_BUILD), $(BUILD_LIBIBERTY), or $(BUILD_LIBINTL)? All three of these occur only on the problematic lines... 'gmake -d' doesn't give any useful additional output. With these lines commented-out, the build succeeds. P.S. For IRIX, I make the following addition to the ebuild, so that the platform tools aren't overridden by (non-compatible) GNU equivalents within the portage environment: --- binutils-2.20.51.0.1.ebuild +++ binutils-2.20.51.0.1.ebuild @@ -6,7 +6,7 @@ PATCHVER="1.0" ELF2FLT_VER="" inherit toolchain-binutils -KEYWORDS="~x64-freebsd ~x86-freebsd ~amd64-linux ~x86-linux ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" +KEYWORDS="~mips-irix ~x64-freebsd ~x86-freebsd ~amd64-linux ~x86-linux ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" src_unpack() { toolchain-binutils_src_unpack @@ -25,3 +25,15 @@ src_compile() { toolchain-binutils_src_compile } + +src_install() { + toolchain-binutils_src_install + + if [[ ${CHOST} == *-irix* ]]; then + local binary + for binary in ar as ld nm ranlib; do + ewarn "Removing GNU \"$binary\" tool from MIPSpro environment" + [[ -e "${ED}"/${BINPATH}/${binary} ]] && rm "${ED}"/${BINPATH}/${binary} + done + fi +}
Created attachment 204318 [details, diff] Fix broken(?) Makefile for i386, ia64, and z8k(?) rules This fix is a hack. There's probably some mis-setting in one of the variables being expanded in these rules - BUILD_LIBIBERTY, BUILD_LIBINTL, and LINK_FOR_BUILD exist in all of the failing lines and only in the failing lines.
I wonder how this is for the most recent releases of binutils, in particular the stable non-Linux ones