Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 285180 - sys-devel/binutils-2.20.51.0.1 build failure on IRIX
Summary: sys-devel/binutils-2.20.51.0.1 build failure on IRIX
Status: RESOLVED NEEDINFO
Alias: None
Product: Gentoo/Alt
Classification: Unclassified
Component: Prefix Support (show other bugs)
Hardware: All IRIX
: High normal (vote)
Assignee: Gentoo Prefix
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-09-16 11:42 UTC by Stuart Shelton
Modified: 2011-04-24 17:11 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments
Fix broken(?) Makefile for i386, ia64, and z8k(?) rules (binutils-2.20.51.0.1-irix.patch,7.52 KB, patch)
2009-09-16 12:30 UTC, Stuart Shelton
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Stuart Shelton 2009-09-16 11:42:44 UTC
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
+}
Comment 1 Stuart Shelton 2009-09-16 12:30:17 UTC
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.
Comment 2 Fabian Groffen gentoo-dev 2011-04-24 17:11:02 UTC
I wonder how this is for the most recent releases of binutils, in particular the stable non-Linux ones