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
Created attachment 199518 [details] build.log
We need the config.log file as well.
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
Tremendously fun… is binutils keeping a broken libopcodes?
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)...
you need to link in libiberty when linking against libopcodes, and libopcodes also needs libbfd. not really a bug in binutils.
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?...
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.
some targets use more of libiberty than others, so some targets may not require symbols from libiberty
Hm okay; shouldn't it then link in libiberty by itself at that point, though?
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
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?
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"
(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.
(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?
no. multiple versions of binutils can be installed.
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 ...
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)
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