Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 279563 - dev-util/mono-debugger-2.4.2-r1 problems with libopcodes when using sys-devel/binutils and USE=multitarget
Summary: dev-util/mono-debugger-2.4.2-r1 problems with libopcodes when using sys-devel...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: dotnet project
URL: http://sourceware.org/bugzilla/show_b...
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-07-29 08:14 UTC by onip
Modified: 2010-07-04 19:50 UTC (History)
6 users (show)

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


Attachments
build.log (build.log,5.67 KB, text/plain)
2009-07-29 08:16 UTC, onip
Details
config.log (config.log,21.21 KB, text/plain)
2009-07-29 12:31 UTC, Mike Auty (RETIRED)
Details
020_all_system-libbfd.patch with libiberty dep for libopcodes (020_all_system-libbfd.patch,2.55 KB, patch)
2009-08-23 10:07 UTC, Mike Auty (RETIRED)
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description onip 2009-07-29 08:14:18 UTC
newer mono-debugger doesn't pass configure phase because it cannot find a function in libopcodes. (log to follow)

Reproducible: Always

Steps to Reproduce:




Portage 2.1.6.13 (default/linux/x86/2008.0/desktop, gcc-4.3.2, glibc-2.9_p20081201-r2, 2.6.29-gentoo-r5 i686)
=================================================================
System uname: Linux-2.6.29-gentoo-r5-i686-Intel-R-_Pentium-R-_4_CPU_2.50GHz-with-gentoo-1.12.11.1
Timestamp of tree: Wed, 29 Jul 2009 07:30:01 +0000
app-shells/bash:     3.2_p39
dev-java/java-config: 2.1.8-r1
dev-lang/python:     2.6.2-r1
dev-python/pycrypto: 2.0.1-r8
dev-util/cmake:      2.6.4
sys-apps/baselayout: 1.12.11.1
sys-apps/sandbox:    1.6-r2
sys-devel/autoconf:  2.13, 2.63-r1
sys-devel/automake:  1.5, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.2
sys-devel/binutils:  2.18-r3
sys-devel/gcc-config: 1.4.1
sys-devel/libtool:   2.2.4
virtual/os-headers:  2.6.27-r2
ACCEPT_KEYWORDS="x86"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O2 -march=i686 -mmmx -msse -msse2 -pipe -fomit-frame-pointer"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/config"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c /etc/udev/rules.d"
CXXFLAGS="-O2 -march=i686 -mmmx -msse -msse2 -pipe -fomit-frame-pointer"
DISTDIR="/usr/portage/distfiles"
FEATURES="buildpkg distlocks fixpackages parallel-fetch protect-owned sandbox sfperms strict unmerge-orphans userfetch"
FFLAGS="-O2 -march=i686 -mmmx -msse -msse2 -pipe -fomit-frame-pointer"
GENTOO_MIRRORS="http://linux.rz.ruhr-uni-bochum.de/download/gentoo-mirror/ http://mirror.switch.ch/ftp/mirror/gentoo/ http://mirror.yandex.ru/gentoo-distfiles/"
LANG="it_IT.UTF-8"
LC_ALL="it_IT.UTF-8"
LDFLAGS="-Wl,-z,now -Wl,--as-needed -Wl,-O1 -Wl,--hash-style=gnu"
LINGUAS="it"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
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="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/portage/local/layman/science /usr/portage/local/layman/gechi /usr/portage/local/layman/sunrise /usr/local/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="X a52 aac aalib acpi alsa apache2 audiofile berkdb bluetooth branding bzip2 cairo cddb cdparanoia cdr cli cracklib crypt cups curl dbus dga dri dts dvb dvd dvdr dvdread eds emboss encode evo exif fam fbcon ffmpeg firefox flac fortran ftp gdbm gif gnome gnome-keyring gpm gstreamer gtk gtk2 gtkhtml hal iconv imagemagick imlib ipod isdnlog java jikes jpeg jpeg2k lame lcms ldap libnotify mad midi mikmod mmx mng mono mp3 mpeg mudflap musicbrainz nautilus ncurses nls nptl nptlonly offensive ogg openal opengl openmp pam pcre pdf perl png ppds pppd python quicktime readline reflection ruby samba schroedinger sdl session sndfile spell spl sse sse2 ssl startup-notification svg sysfs tcpd theora threads tiff truetype unicode usb v4l v4l2 vcd vorbis wavpack win32codecs wmf x264 x86 xine xml xmp xorg xulrunner xv xvid zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 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 auth_digest authn_anon authn_dbd authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock dbd deflate dir disk_cache env expires ext_filter file_cache filter headers ident imagemap include info log_config logio mem_cache mime mime_magic negotiation proxy proxy_ajp proxy_balancer proxy_connect proxy_http rewrite setenvif so speling status unique_id userdir usertrack vhost_alias" CAMERAS="canon ptp2" ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="it" USERLAND="GNU" VIDEO_CARDS="nv nvidia vesa"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 1 onip 2009-07-29 08:16:35 UTC
Created attachment 199518 [details]
build.log
Comment 2 Diego Elio Pettenò (RETIRED) gentoo-dev 2009-07-29 10:25:40 UTC
We need the config.log file as well.
Comment 3 Mike Auty (RETIRED) gentoo-dev 2009-07-29 12:31:37 UTC
Created attachment 199554 [details]
config.log 

Here's my failed config.log.  The relevant section seems to be:

configure:5776: i686-pc-linux-gnu-gcc -o conftest -O2 -mtune=core2 -pipe -ggdb  -Wl,--as-needed -Wl,--no-undefined conftest.c -lopcodes   >&5
/usr/lib/gcc/i686-pc-linux-gnu/4.3.3/../../../../i686-pc-linux-gnu/lib/libopcodes.so: undefined reference to `floatformat_ieee_single_big'
/usr/lib/gcc/i686-pc-linux-gnu/4.3.3/../../../../i686-pc-linux-gnu/lib/libopcodes.so: undefined reference to `floatformat_m68881_ext'
/usr/lib/gcc/i686-pc-linux-gnu/4.3.3/../../../../i686-pc-linux-gnu/lib/libopcodes.so: undefined reference to `xregexec'
/usr/lib/gcc/i686-pc-linux-gnu/4.3.3/../../../../i686-pc-linux-gnu/lib/libopcodes.so: undefined reference to `floatformat_to_double'
/usr/lib/gcc/i686-pc-linux-gnu/4.3.3/../../../../i686-pc-linux-gnu/lib/libopcodes.so: undefined reference to `xregerror'
/usr/lib/gcc/i686-pc-linux-gnu/4.3.3/../../../../i686-pc-linux-gnu/lib/libopcodes.so: undefined reference to `xregfree'
/usr/lib/gcc/i686-pc-linux-gnu/4.3.3/../../../../i686-pc-linux-gnu/lib/libopcodes.so: undefined reference to `xregcomp'
/usr/lib/gcc/i686-pc-linux-gnu/4.3.3/../../../../i686-pc-linux-gnu/lib/libopcodes.so: undefined reference to `floatformat_ieee_single_little'
/usr/lib/gcc/i686-pc-linux-gnu/4.3.3/../../../../i686-pc-linux-gnu/lib/libopcodes.so: undefined reference to `floatformat_ieee_double_big'
collect2: ld returned 1 exit status

Portage 2.2_rc33 (default/linux/x86/2008.0, gcc-4.3.3, glibc-2.10.1-r0, 2.6.30.3-dirty i686)
=================================================================
System uname: Linux-2.6.30.3-dirty-i686-Intel-R-_Core-TM-2_Duo_CPU_T7700_@_2.40GHz-with-gentoo-2.0.1
Timestamp of tree: Tue, 28 Jul 2009 15:30:01 +0000
ccache version 2.4 [enabled]
app-shells/bash:     4.0_p28
dev-java/java-config: 2.1.8-r1
dev-lang/python:     2.6.2-r1
dev-python/pycrypto: 2.0.1.99999
dev-util/ccache:     2.4-r8
dev-util/cmake:      2.6.4
sys-apps/baselayout: 2.0.1
sys-apps/openrc:     0.4.3-r3
sys-apps/sandbox:    2.0
sys-devel/autoconf:  2.13, 2.63-r1
sys-devel/automake:  1.5, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.2, 1.11
sys-devel/binutils:  2.19.1-r1
sys-devel/gcc-config: 1.4.1
sys-devel/libtool:   2.2.6a
virtual/os-headers:  2.6.30-r1
ACCEPT_KEYWORDS="x86 ~x86"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O2 -mtune=core2 -pipe -ggdb"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /var/lib/hsqldb"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/eselect/postgresql /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c /etc/udev/rules.d"
CXXFLAGS="-O2 -mtune=core2 -pipe -ggdb"
DISTDIR="/usr/portage/distfiles"
FEATURES="ccache collision-protect cvs distlocks fixpackages parallel-fetch sandbox sfperms splitdebug strict unmerge-orphans userfetch userpriv usersandbox"
GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo"
LC_ALL="en_GB"
LDFLAGS="-Wl,--as-needed"
LINGUAS="en en_GB"
MAKEOPTS="-j3"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
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="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/overlays/embedded /usr/local/overlays/gnome /usr/local/overlays/mozilla /usr/local/overlays/desktop-effects /usr/local/overlays/x11 /usr/local/overlays/vmware /usr/local/overlays/uncon /usr/local/overlays/ikelos /usr/local/overlays/personal"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="X a52 aac acl acpi additions alsa apache2 applet autoipd avahi bash-completion berkdb bluetooth boundschecking bzip2 cairo ccache cdda cdr cdrkit cli consolekit cracklib crypt cups curl dbus dell deskbar device-mapper dhcpcd divx dri dv dvb dvd dvdr dvi encode exif fam ffmpeg fftw ftp fuse gd gedit gif git glade glitz gmedia gnome gnome-keyring gnuplot gps graphviz gsm gstreamer gtk gtkhtml h323 hal hdaps hpn httpd hybrid-auth iconv ilbc imap injection ipod iproute2 ipv6 isdnlog java java5 java6 javascript jingle john jpeg jpeg2k kpathsea kvm ladspa lame laptop ldap libffi libnotify libsexy mad maildir mdnsresponder-compat midi mikmod mmx mmxext mng mono moonlight mozdevelop mozdom moznopango mp3 mpeg mscash mssql mudflap multitarget music mysql nautilus ncurses netboot network networkmanager nls nntp nptl nptlonly ntlm obex ogg old-daemons opengl openmp pam parted password patch pcmcia pcre pcsc-lite pdf perl pic pipechan png policykit postgres ppds pppd python quicktime rdesktop readline realmedia reflection resolvconf rtsp samba sasl sdl server session sip skins slp smp sms smux snmp sox spell spl sqlite sqlite3 sse sse2 ssl stream subversion svg svn-mirror sysfs syslog tcpd theora tiff tokenizer tracker truetype unicode usb usrp v4l2 vlm vnc vorbis wav webdav wifi win32codecs winbind wmf wmp wpe x264 x86 x86emu xcb xcomposite xklavier xml xorg xulrunner xv xvid zlib" ALSA_CARDS="hda-intel" 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 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" DVB_CARDS="usb-dib0700" ELIBC="glibc" INPUT_DEVICES="evdev keyboard mouse synaptics" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en en_GB" USERLAND="GNU" VIDEO_CARDS="intel vesa"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LANG, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 4 Diego Elio Pettenò (RETIRED) gentoo-dev 2009-07-29 12:36:47 UTC
Tremendously fun… is binutils keeping a broken libopcodes?
Comment 5 Mike Auty (RETIRED) gentoo-dev 2009-08-22 19:38:29 UTC
Ok, if it helps, I seem to be experiencing this problem only with when binutils has been compiled with USE="multitarget".  I'm going to CC in toolchain because of the verified link to binutils (and dotnet, who should've been CCed in from the beginning)...
Comment 6 SpanKY gentoo-dev 2009-08-23 00:03:08 UTC
you need to link in libiberty when linking against libopcodes, and libopcodes also needs libbfd.  not really a bug in binutils.
Comment 7 Mike Auty (RETIRED) gentoo-dev 2009-08-23 10:07:16 UTC
Created attachment 202005 [details, diff]
020_all_system-libbfd.patch with libiberty dep for libopcodes

Ok, getting closer.  I've discovered it really is only for mono-debugger-2.4.2-r1, because it's in patches-1 provided with it.

020_all_system-libbfd.patch adds in an AC_CHECK_LIB on opcodes.  I've tried adding an additional libraries option to the end of the AC_CHECK_LIB call containing just libiberty.la, and that seems to work, but then I can't understand why libiberty wouldn't need adding the bfdlibs variable as well (since it uses -lopcodes)?  There were no errors compiling, but I've no idea when mono-debugger will try and call the disassemble symbol it's using from libopcodes.

Also I thought mono-debugger built it's own internal copy of libopcodes, and we don't seem to be using the system version of that, so does the system version of libopcodes ever actually get used?...
Comment 8 Diego Elio Pettenò (RETIRED) gentoo-dev 2009-08-23 12:34:47 UTC
Mike is there anything different when using multitarget, with these libraries? For what I can see, by default just linking -lopcodes is fine (it has no undefined symbols that are not already taken care of by the NEEDED entries, no libiberty needed), with multitarget that's not true anymore, that sounds like a bug in binutils to me.
Comment 9 SpanKY gentoo-dev 2009-08-23 21:31:52 UTC
some targets use more of libiberty than others, so some targets may not require symbols from libiberty
Comment 10 Diego Elio Pettenò (RETIRED) gentoo-dev 2009-08-23 21:33:54 UTC
Hm okay; shouldn't it then link in libiberty by itself at that point, though?
Comment 11 SpanKY gentoo-dev 2009-08-24 02:44:50 UTC
it does already:
$ grep iberty /usr/x86_64-pc-linux-gnu/lib/libopcodes.la
dependency_libs=' -liberty'

if you dont like with libtool, then it's your problem to make sure to pull in all the libs you need
Comment 12 Peter Alfredsen (RETIRED) gentoo-dev 2009-09-02 17:07:54 UTC
Looks like http://sourceware.org/bugzilla/show_bug.cgi?id=6937
Was fixed in the last patch attached to http://sourceware.org/bugzilla/show_bug.cgi?id=6768

I notice all 2.19.51.0.* versions of binutils have the patch.

Backport?
Comment 13 Alex Bennee 2010-02-24 14:03:35 UTC
This is still happening on an upgrade of 2.4.2 to 2.6:

  configure: error: Missing libopcodes library

My binutils is configured as:

sys-devel/binutils-2.18-r3  USE="multitarget nls -multislot -test -vanilla"
Comment 14 onip 2010-02-25 10:09:58 UTC
(In reply to comment #12)
> I notice all 2.19.51.0.* versions of binutils have the patch
Upgrading to binutils-2.20 makes mdb compile and run fine.

(In reply to comment #13)
> This is still happening on an upgrade of 2.4.2 to 2.6:
> 
>   configure: error: Missing libopcodes library
> 
> My binutils is configured as:
> 
> sys-devel/binutils-2.18-r3  USE="multitarget nls -multislot -test -vanilla"

This issue happened to me to, and I don't have "multitarget" use (never had), changing summary.

Comment 15 Alex Bennee 2010-02-25 16:29:43 UTC
(In reply to comment #14)
> (In reply to comment #12)
> > I notice all 2.19.51.0.* versions of binutils have the patch
> Upgrading to binutils-2.20 makes mdb compile and run fine.

Once I ~amd64'ed binutils mdb did indeed compile. Can we not just add a >=binutils-2.20 dependency to the ebuild?
Comment 16 Ryan Hill (RETIRED) gentoo-dev 2010-02-26 21:58:18 UTC
no.  multiple versions of binutils can be installed.
Comment 17 SpanKY gentoo-dev 2010-03-08 04:48:13 UTC
the referenced upstream reports are a different bug and have no bearing on this one ...

i still dont see any indication that this is a bug in binutils.  mono-debugger needs to link with -liberty when it tries to use -lopcodes ...
Comment 18 Stian Skjelstad 2010-04-03 07:52:38 UTC
This was the closest bug I could find, but in my case I don't have multilib enabled on binutils, and I can't even get past configure, unless I changed a single line in

files/mono-debugger-2.6-system-bfd.patch

+     AC_CHECK_LIB([opcodes], [init_disassemble_info], [:], [AC_MSG_ERROR([Missing libopcodes library])])

into

+     AC_CHECK_LIB([opcodes], [init_disassemble_info], [:], [AC_MSG_ERROR([Missing libopcodes library])], [-lbfd])

This is with:
binutils-2.18-r3 (nls -multislot -multitarget -test -vanilla)
gcc-4.3.4 (fortran mudflap nls nptl openmp -altivec -bootstrap -build -doc -fixed-point -gcj -gtk -hardened -libffi -multilib -multislot -n32 -n64 -nocxx -nopie -objc -objc++ -objc-gc -test -vanilla)
Comment 19 Pacho Ramos gentoo-dev 2010-07-04 19:50:19 UTC
Looks fixed (at least, I am unable to reproduce) with:
sys-devel/binutils-2.20.1-r1 (with multitarget USE flag enabled)
dev-util/mono-debugger-2.6.3