Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 435168

Summary: dev-lang/mono-2.10.9 cannot find libunwind on ia64 systems
Product: Gentoo Linux Reporter: Jay Maynard <jaymaynard>
Component: New packagesAssignee: dotnet project <dotnet>
Status: RESOLVED UPSTREAM    
Severity: normal CC: ia64, toolchain
Priority: Normal    
Version: unspecified   
Hardware: IA64   
OS: Linux   
URL: https://bugzilla.xamarin.com/show_bug.cgi?id=7197
See Also: https://bugzilla.xamarin.com/show_bug.cgi?id=7197
Whiteboard:
Package list:
Runtime testing required: ---
Attachments: Build log and other output from failed build
config.log from install attempt

Description Jay Maynard 2012-09-15 20:47:37 UTC
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:

>>>  '/var/tmp/portage/dev-lang/mono-2.10.9-r2/temp/build.log'

 * 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.
Comment 1 Jay Maynard 2012-09-15 20:48:53 UTC
(562) root@thebrain:~# emerge --info
Portage 2.1.11.9 (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
app-shells/bash:          4.1_p9
dev-lang/python:          2.7.3-r2
dev-util/pkgconfig:       0.26
sys-apps/baselayout:      2.0.3
sys-apps/openrc:          0.9.4
sys-apps/sandbox:         2.5
sys-devel/autoconf:       2.68
sys-devel/automake:       1.11.1
sys-devel/binutils:       2.21.1-r1
sys-devel/gcc:            4.5.3-r1
sys-devel/gcc-config:     1.4.1-r1
sys-devel/libtool:        2.4-r1
sys-devel/make:           3.82-r1
sys-kernel/linux-headers: 2.6.39 (virtual/os-headers)
sys-libs/glibc:           2.13-r4
Repositories: gentoo
ACCEPT_KEYWORDS="ia64"
ACCEPT_LICENSE="* -@EULA"
CBUILD="ia64-unknown-linux-gnu"
CFLAGS="-O2 -pipe"
CHOST="ia64-unknown-linux-gnu"
CONFIG_PROTECT="/etc /var/bind"
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"
CXXFLAGS="-O2 -pipe"
DISTDIR="/usr/portage/distfiles"
FCFLAGS="-O2 -pipe"
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"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="http://distfiles.gentoo.org"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j3"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
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"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY=""
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
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
Comment 2 Agostino Sarubbo gentoo-dev 2012-09-15 21:00:39 UTC
did you try emerge -1 sys-libs/libunwind ?
Comment 3 Jay Maynard 2012-09-15 21:05:15 UTC
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.
Comment 4 Pacho Ramos gentoo-dev 2012-09-15 21:31:11 UTC
mono doesn't work on ia64 (it's not even keyworded)
Comment 5 Jay Maynard 2012-09-15 21:35:12 UTC
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.
Comment 6 Pacho Ramos gentoo-dev 2012-09-15 21:48:11 UTC
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
Comment 7 Jay Maynard 2012-09-15 23:38:21 UTC
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.
Comment 8 Jay Maynard 2012-09-16 00:57:35 UTC
Created attachment 323960 [details]
config.log from install attempt

As requested. This shows the error generated from configure.
Comment 9 SpanKY gentoo-dev 2012-09-16 05:20:52 UTC
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'
Comment 10 Pacho Ramos gentoo-dev 2012-09-16 07:49:02 UTC
Then, report this to upstream please:
https://bugzilla.xamarin.com
Comment 11 Pacho Ramos gentoo-dev 2012-09-16 07:50:01 UTC
(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 ;)
Comment 12 Jay Maynard 2012-09-16 07:52:16 UTC
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.
Comment 13 Jay Maynard 2012-09-16 08:01:17 UTC
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?
Comment 14 SpanKY gentoo-dev 2012-09-16 21:49:51 UTC
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.
Comment 15 Jay Maynard 2012-09-16 21:55:58 UTC
Same question, though. Since gcc's libunwind doesn't work, how do we force it to use the one that does?
Comment 16 Jay Maynard 2012-09-16 22:54:45 UTC
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.
Comment 17 Pacho Ramos gentoo-dev 2012-09-17 07:01:18 UTC
(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 :(
Comment 18 Jay Maynard 2012-09-17 12:10:17 UTC
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?
Comment 19 SpanKY gentoo-dev 2012-09-17 17:12:36 UTC
(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
Comment 20 Pacho Ramos gentoo-dev 2012-09-17 19:17:33 UTC
Not sure if slotting libunwind would be possible :/
Comment 21 SpanKY gentoo-dev 2012-09-17 19:35:21 UTC
i don't think it would, and it'd make life hell for everyone else i think
Comment 22 Pacho Ramos gentoo-dev 2013-05-24 19:07:22 UTC
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 :|