Created attachment 323950 [details]
Build log and other output from failed build
Attempting to emerge mono 2.10.9-r2 on a system where it has never been installed results in the following error:
>>> Failed to emerge dev-lang/mono-2.10.9-r2, Log file:
* Messages for package dev-lang/mono-2.10.9-r2:
* ERROR: dev-lang/mono-2.10.9-r2 failed (configure phase):
* econf failed
* Call stack:
* ebuild.sh, line 85: Called src_configure
* environment, line 3228: Called go-mono_src_configure '--enable-static' '--disable-quiet-build' '--without-moonlight' '--with-libgdiplus=installed' '--without-xen_opt' '--without-ikvm-native' '--with-jit' '--disable-dtrace' '--with-profile4'
* environment, line 2151: Called econf '--disable-dependency-tracking' '--disable-static' '--enable-static' '--disable-quiet-build' '--without-moonlight' '--with-libgdiplus=installed' '--without-xen_opt' '--without-ikvm-native' '--with-jit' '--disable-dtrace' '--with-profile4'
* phase-helpers.sh, line 467: Called die
* The specific snippet of code:
* die "econf failed"
* If you need support, post the output of `emerge --info '=dev-lang/mono-2.10.9-r2'`,
* the complete build log and the output of `emerge -pqv '=dev-lang/mono-2.10.9-r2'`.
* The complete build log is located at '/var/tmp/portage/dev-lang/mono-2.10.9-r2/temp/build.log'.
* The ebuild environment file is located at '/var/tmp/portage/dev-lang/mono-2.10.9-r2/temp/environment'.
* Working directory: '/var/tmp/portage/dev-lang/mono-2.10.9-r2/work/mono-2.10.9'
* S: '/var/tmp/portage/dev-lang/mono-2.10.9-r2/work/mono-2.10.9'
The attachment contains the files and command output mentioned in the message.
(562) root@thebrain:~# emerge --info
Portage 126.96.36.199 (default/linux/ia64/10.0/server, gcc-4.5.3, glibc-2.13-r4, 2.6.39-gentoo-r3 ia64)
System uname: Linux-2.6.39-gentoo-r3-ia64-31-with-gentoo-2.0.3
Timestamp of tree: Sat, 15 Sep 2012 18:30:01 +0000
sys-kernel/linux-headers: 2.6.39 (virtual/os-headers)
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
FEATURES="assume-digests binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles news parallel-fetch parse-eapi-ebuild-head protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
USE="acl berkdb bzip2 cli cracklib crypt cups cxx dri fortran gdbm gpm ia64 iconv ipv6 modules mudflap ncurses nptl openmp pam pcre pppd readline session snmp ssl tcpd truetype unicode xml zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" 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" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" 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 evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" PHP_TARGETS="php5-3" PYTHON_TARGETS="python2_7" RUBY_TARGETS="ruby18 ruby19" USERLAND="GNU" VIDEO_CARDS="fbdev glint mach64 mga nv r128 radeon savage tdfx vesa dummy v4l" 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, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, LINGUAS, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON
did you try emerge -1 sys-libs/libunwind ?
When I started, I had libunwind-0.99 on the system. I manually emerged libunwind-1.0.1-r1 and tried again; the result is in the logs.
I just did the emerge -1 as you suggested, and got the same result.
mono doesn't work on ia64 (it's not even keyworded)
Mono's *supposed* to work on ia64, and it's supported there. That's what libunwind's all about. See http://www.mono-project.com/Mono:IA64 .
Lots of things work that aren't keyworded. Once you get away from the all-the-world's-an-x86_64, you find that you have to tell portage to ignore the lack of a keyword to get lots of things done.
It wasn't never keyworded and looks like it doesn't even compile, will CC libwind maintainers to figure out why it's not being detected, but you also need to attach config.log file. Also, not sure why do you expect we support mono on arches where it's not even keyworded, posting a link referring to a port in 2005 is not enough, you would be surprised how many obsolete webpages are still floating in mono-project.com, maybe it worked in the past but later broke again in more recent versions
Seems I'm not the only one to trip over libunwind...see http://dritaniumdonuts.wordpress.com/2011/05/18/curse-libunwind-and-intel/ . I've been fiddling with various things in /lib and /usr/lib, but can't get it to be found no matter what I do.
I do note that that function only exists in libunwind-0.9.9, so that should be marked as a requirement.
And as for not being keyworded, I must repeat: keywording only gets done for i386 and x86_64; everything else is hit or miss. That something isn't keyworded for ia64 doesn't mean that it won't work, or that the keyword wouldn't be added.
Created attachment 323960 [details]
config.log from install attempt
As requested. This shows the error generated from configure.
the error isn't that libunwind wasn't found (it was), it's that mono tried to use a symbol that isn't exported by it (the libunwind provided by gcc)
/var/tmp/portage/dev-lang/mono-2.10.9-r2/work/mono-2.10.9/conftest.c:213: undefined reference to `_U_dyn_register'
Then, report this to upstream please:
(In reply to comment #7)
> And as for not being keyworded, I must repeat: keywording only gets done for
> i386 and x86_64; everything else is hit or miss. That something isn't
> keyworded for ia64 doesn't mean that it won't work, or that the keyword
> wouldn't be added.
Regarding this, I guess you have tried to send bugs asking to keyword things that already work ;)
The symbol *is* exported by libunwind-0.9.9 as emerged in and found in /usr/lib/libunwind.so.7.0.0.
And yes, I have submitted bugs asking for keywording, as it happens. Just not recently, and not under this email.
Reported upstream: https://bugzilla.xamarin.com/show_bug.cgi?id=7197
I'm still not sure this isn't a Gentoo packaging error, however. Why doesn't emerging libunwind completely replace what's already there?
ia64's gcc has always built/installed libunwind itself because it relies on it for unwinding things at runtime. that does not provide the symbol in question.
Same question, though. Since gcc's libunwind doesn't work, how do we force it to use the one that does?
Just answered my own question: mv the gcc-supplied one out of the way. Then it finds the emerged 0.9.9 library and configures and builds fine.
(In reply to comment #16)
> Just answered my own question: mv the gcc-supplied one out of the way. Then
> it finds the emerged 0.9.9 library and configures and builds fine.
The problem is that it still looks to not work with sys-libs/libunwind-1.0.1-r1 and forcing a depend on older libunwind version would lead us to bug 414997 :(
Hm. OTOH, 0.9.9 and 1.0.1 do use a different library level (0.9.9 is level 7, 1.x is level 8). Perhaps 1.x should be given a different name, since it uses a different interface?
(In reply to comment #18)
it already uses a different name -- .7 vs .8
we're not diverging from upstream libunwind which means renaming libs isn't going to happen
Not sure if slotting libunwind would be possible :/
i don't think it would, and it'd make life hell for everyone else i think
This will need to wait for upstream as no fix/workaround that we could apply looks to be available.
As a side note, 3.0.7 was just bumped, maybe something changed in that new upstream version :|