Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 354483 - dev-libs/nspr-4.8.7: emerge on Intel Mac dies with "failed to detect whether your arch is 64bits or 32bits"
Summary: dev-libs/nspr-4.8.7: emerge on Intel Mac dies with "failed to detect whether ...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo/Alt
Classification: Unclassified
Component: Prefix Support (show other bugs)
Hardware: AMD64 Linux
: High normal (vote)
Assignee: Gentoo Prefix
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 354523
  Show dependency tree
 
Reported: 2011-02-11 16:46 UTC by Sven Schwyn (svoop)
Modified: 2011-05-16 09:49 UTC (History)
1 user (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Sven Schwyn (svoop) 2011-02-11 16:46:53 UTC
The ebuild tries to figure out the architecture in the src_configure section. This is what the test code returns on my machine:

> echo >test.c
> i686-apple-darwin9-gcc -c test.c -o test.o
> file test.o
test.o: data

As a consequence, it dies with "failed to detect whether your arch is 64bits or 32bits, disable distcc if you're using it".

If I override it with 'myconf="${myconf} --enable-64bit"', the ebuild installs just fine. 

Reproducible: Always

Steps to Reproduce:




Portage 2.2.01.17865-prefix (prefix/darwin/macos/10.5/x86, gcc-4.2.1, unavailable, 10.6.0 i386)
=================================================================
                        System Settings
=================================================================
System uname: Darwin-10.6.0-i386-32bit
Timestamp of tree: Fri, 11 Feb 2011 09:12:17 +0000
distcc 3.1-toolwhip.1 i386-apple-darwin10.0 [disabled]
app-shells/bash:     4.1_p7
dev-lang/python:     2.7.1-r00.1
dev-util/cmake:      2.8.3-r1
sys-devel/autoconf:  2.68
sys-devel/automake:  1.10.3, 1.11.1
sys-devel/gcc-config: 1.4.1-r00.2
sys-devel/libtool:   2.4-r1
sys-devel/make:      3.82
Repositories: gentoo_prefix bitcetera-prefix local
Installed sets: @system
ACCEPT_KEYWORDS="~x86-macos"
ACCEPT_LICENSE="* -@EULA"
CBUILD="i686-apple-darwin9"
CFLAGS="-O2 -pipe -march=nocona"
CHOST="i686-apple-darwin9"
CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/eselect/postgresql /etc/gconf /etc/portage /etc/revdep-rebuild /etc/terminfo"
CXXFLAGS="-O2 -pipe -march=nocona"
DISTDIR="/Gentoo/usr/portage/distfiles"
EMERGE_DEFAULT_OPTS="--with-bdeps=y"
FEATURES="assume-digests binpkg-logs collision-protect distlocks fixlafiles fixpackages news nostrip parallel-fetch preserve-libs protect-owned sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch"
FFLAGS=""
GENTOO_MIRRORS="http://distfiles.gentoo.org"
LDFLAGS="-Wl,-dead_strip_dylibs"
PKGDIR="/Gentoo/usr/portage/packages"
PORTAGE_CONFIGROOT="/Gentoo/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/Gentoo/var/tmp"
PORTDIR="/Gentoo/usr/portage"
PORTDIR_OVERLAY="/Gentoo/var/lib/layman/bitcetera-prefix /Gentoo/usr/local/portage/local"
SYNC="rsync://rsync.prefix.freens.org/gentoo-portage-prefix"
USE="aqua coreaudio cracklib cxx mmx mmxext modules ncurses nls objc objc++ prefix readline sse sse2 ssl unicode x86-macos zlib" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="Darwin" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="keyboard mouse" KERNEL="Darwin" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" PHP_TARGETS="php5-3" RUBY_TARGETS="ruby19" USERLAND="GNU" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" 
Unset:  CPPFLAGS, CTARGET, INSTALL_MASK, LANG, LC_ALL, LINGUAS, MAKEOPTS, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 1 Jeremy Olexa (darkside) (RETIRED) archtester gentoo-dev Security 2011-02-11 17:12:35 UTC
(In reply to comment #0)

> If I override it with 'myconf="${myconf} --enable-64bit"', the ebuild installs
> just fine. 
> <snip>
> ACCEPT_KEYWORDS="~x86-macos"
> CBUILD="i686-apple-darwin9"
> CHOST="i686-apple-darwin9"

This doesn't address the bug report, but I wonder why you want to "--enable-64bit" on a 32bit prefix...
Comment 2 Sven Schwyn (svoop) 2011-02-11 17:20:13 UTC
(In reply to comment #1)
> This doesn't address the bug report, but I wonder why you want to
> "--enable-64bit" on a 32bit prefix...

You're right, it compiles as well when I drop this enable.
Comment 3 Fabian Groffen gentoo-dev 2011-02-12 13:02:41 UTC
@mozilla: could you agree with this change to solve this problem, which occasionally seems to me like a simplification as well?
@Sven: could you test this patch if it works for you?

===================================================================
RCS file: /var/cvsroot/gentoo-x86/dev-libs/nspr/nspr-4.8.7.ebuild,v
retrieving revision 1.1
diff -u -r1.1 nspr-4.8.7.ebuild
--- nspr-4.8.7.ebuild   14 Jan 2011 13:37:10 -0000      1.1
+++ nspr-4.8.7.ebuild   12 Feb 2011 13:00:19 -0000
@@ -43,9 +43,9 @@
 
        echo > "${T}"/test.c
        $(tc-getCC) -c "${T}"/test.c -o "${T}"/test.o
-       case $(file "${T}"/test.o) in
-               *64-bit*|*ppc64*|*x86_64*) myconf="${myconf} --enable-64bit";;
-               *32-bit*|*ppc*|*i386*|*"RISC System/6000"*) ;;
+       case $(scanelf -BF'%M' "${T}"/test.o)$(scanmacho -BF'%M' "${T}"/test.o) in
+               ELFCLASS64*|POWERPC64*|X86_64*) myconf="${myconf} --enable-64bit";;
+               ELFCLASS32*|POWERPC*|I386*|ARM*) ;;
                *) die "Failed to detect whether your arch is 64bits or 32bits, disable distcc if you're using it, please";;
        esac
 
cvs diff: Diffing files
Comment 4 Sven Schwyn (svoop) 2011-02-12 13:29:19 UTC
The patch works for me, it enters the "ELFCLASS32*|POWERPC*|I386*|ARM*)" clause.
Comment 5 Fabian Groffen gentoo-dev 2011-02-27 10:14:58 UTC
@mozilla: I went ahead and committed this change.  I hope this is ok with you.  If not, please revert and reopen this bug so we can find a solution that works for both of us.  Thanks.
Comment 6 Michael Haubenwallner (RETIRED) gentoo-dev 2011-05-16 09:49:41 UTC
(In reply to comment #3)
> - case $(file "${T}"/test.o) in
> + case $(scanelf -BF'%M' "${T}"/test.o)$(scanmacho -BF'%M' "${T}"/test.o) in

Not important enough to reopen ATM, just to note:
There is no $(scanelf) or $(scanmacho) on AIX and others, so $(file) still feels necessary.