Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 299490 - app-emulation/wine-1.1.35 fails to build with mp3 support under amd64: undefined reference to `mpg123_feedseek'
Summary: app-emulation/wine-1.1.35 fails to build with mp3 support under amd64: undefi...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Wine Maintainers
URL: http://bugs.winehq.org/show_bug.cgi?i...
Whiteboard:
Keywords:
Depends on: 317125
Blocks:
  Show dependency tree
 
Reported: 2010-01-03 16:06 UTC by Pacho Ramos
Modified: 2011-05-04 15:31 UTC (History)
4 users (show)

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


Attachments
build.log (build.log,1.46 MB, text/plain)
2010-01-03 16:08 UTC, Pacho Ramos
Details
emerge --info app-emulation/wine (emerge.--info,5.36 KB, text/plain)
2011-04-28 16:36 UTC, Mehrunes Dagon
Details
failed emerge log (failed.build.log,24.28 KB, text/plain)
2011-04-28 16:46 UTC, Mehrunes Dagon
Details
config.log, attempting to build wine over mpg123 version 1.13.2 (1.13.2-config.log,361.60 KB, text/plain)
2011-05-04 04:02 UTC, Mehrunes Dagon
Details
this is my 4-th attempt to submit files (config-and-emerge-log.7z,19.02 KB, application/x-7zip-compressed)
2011-05-04 04:16 UTC, Mehrunes Dagon
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Pacho Ramos gentoo-dev 2010-01-03 16:06:26 UTC
This will cause the flag to be still masked on our arch even with new emul packages

emerge --info:
Portage 2.1.7.15 (default/linux/amd64/10.0/desktop, gcc-4.3.4, glibc-2.9_p20081201-r2, 2.6.32-gentoo-r1 x86_64)
=================================================================
System uname: Linux-2.6.32-gentoo-r1-x86_64-AMD_Athlon-tm-_64_Processor_3200+-with-gentoo-1.12.13
Timestamp of tree: Sun, 03 Jan 2010 12:30:01 +0000
ccache version 2.4 [enabled]
app-shells/bash:     4.0_p35
dev-java/java-config: 2.1.9-r2
dev-lang/python:     2.6.4
dev-util/ccache:     2.4-r7
dev-util/cmake:      2.6.4-r3
sys-apps/baselayout: 1.12.13
sys-apps/sandbox:    1.6-r2
sys-devel/autoconf:  2.13, 2.63-r1
sys-devel/automake:  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.6b
virtual/os-headers:  2.6.27-r2
ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="*"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=native -O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/X11/xkb /usr/share/config /var/lib/hsqldb"
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="-march=native -O2 -pipe"
DISTDIR="/usr/distfiles"
FEATURES="assume-digests autoaddcvs ccache cvs distlocks fixpackages multilib-strict news parallel-fetch protect-owned sandbox sfperms sign strict test test-fail-continue unmerge-logs unmerge-orphans userfetch"
GENTOO_MIRRORS="ftp://ftp.free.fr/mirrors/ftp.gentoo.org"
LANG="es_ES.UTF-8"
LC_ALL="es_ES.UTF-8"
LDFLAGS="-Wl,-O1"
LINGUAS="es es_ES en_US"
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/sunrise /usr/portage/local/layman/suka /usr/local/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="3dnow 3dnowext X a52 aac acl acpi alsa amd64 applet avahi bash-completion berkdb branding bzip2 cairo cddb cdinstall cdr cleartype cli consolekit cracklib crypt css cups cxx daap dbus djvu dri dts dvd dvdr dvi eds emboss encode evo exif fam fat ffmpeg firefox flac fortran fuse gdbm gif glitz gnome gnome-keyring gpm gstreamer gtk hal iconv imagemagick java jpeg kdehiddenvisibility kpathsea latex libnotify lyx lzma mad mikmod mmx mmxext mng modules mono mp3 mp4 mpeg mudflap multilib musicbrainz nautilus ncurses network network-cron nls nptl nptlonly ntfs nvidia ogg opengl openmp pam pango pch pcre pdf perl png policykit ppds pppd python qt3support qt4 quicktime readline reflection reiserfs scanner sdl session spell spl sse sse2 ssl ssse3 startup-notification svg sysfs t1lib tcpd threads thunar tiff truetype unicode usb v4l2 vcd vorbis webkit x264 xattr xcb xinetd xml xmp xorg xpm xulrunner xv xvid zeroconf zlib" ALSA_CARDS="via82xx" 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" ELIBC="glibc" INPUT_DEVICES="evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="es es_ES en_US" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="nvidia nv vesa" 
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS


Reproducible: Always
Comment 1 Pacho Ramos gentoo-dev 2010-01-03 16:08:18 UTC
Created attachment 215039 [details]
build.log
Comment 2 Pacho Ramos gentoo-dev 2010-01-05 14:47:47 UTC
CCing sound also per comments http://bugs.winehq.org/show_bug.cgi?id=20042#c21 and http://bugs.gentoo.org/show_bug.cgi?id=283860#c25
Comment 3 Xavier Vachon 2010-01-19 12:51:32 UTC
I filled a ticket on the mpg123 page : https://sourceforge.net/tracker/index.php?func=detail&aid=2934488&group_id=135704&atid=733194 .
Comment 4 Thomas Orgis 2010-01-19 23:16:16 UTC
I wonder if I am supposed to do something about it (as mpg123 maintainer) or if this will eventually figured out by the distributions... on bug #283860 I read that gentoo has figured out the issue: You need to be aware of architecture-dependent headers on a multilib system.

The build works fine when you use the header that has been generated by the build of the library you are going to use. It's pure coincidence that most of the times, the headers are identical. And, in the end, this would be the case for mpg123, too --- if Linux wouldn't have chosen the messy route for largefile support.
I traded safety from subtle runtime bugs for the build issues you are now facing with the crafted header and changed function symbols.

I really wonder why such issues seem to surprise people. Multilib is an evil hack. I'd rather have 32bit stuff confined to a separate prefix (which is entirely possible) instead of everything mixed up. But hey, that's my personal opinion... and I have to tolerate the world's personal opinion that multilib is cool, too;-)

So... do people think that the mpg123 project should do something to make multilib easier? Please do also think about mpg123 working on various other arches than x86 / x86-64...
Comment 5 Pacho Ramos gentoo-dev 2010-01-20 18:41:33 UTC
(In reply to comment #4)
> So... do people think that the mpg123 project should do something to make
> multilib easier? Please do also think about mpg123 working on various other
> arches than x86 / x86-64...
> 

Wouldn't be possible to make an unified header that would work for both arches (like a lot of other hearders seems to do)?
Comment 6 Thomas Orgis 2010-01-20 21:29:22 UTC
Problem is that the header is not just arch-dependent, it depends on the build setup, specifically if you run

./configure --disable-largefile

... and of course it depends on your system indeed supporting large files. The mpg123.h is a result of your build configuration

In the end... I'd need to wrap up all possible configurations of systems in the header to magically work out when it is included in some app. It is hard do do that right and, well, I guess you already noticed that I am not keen on doing it;-)

It is a lot simpler to handle the correct variants for a distribution that has some level of control over the configurations it employes... for example, you know that you are going to do parallel installation of mpg123 as 32 and 64 bits binaries... the mpg123 build doesn't have a clue about that.
Comment 7 Pacho Ramos gentoo-dev 2010-01-20 22:11:15 UTC
As a workaround I suppose that I could maybe provide 64 bits header on emul package that is containing mpg123 libs, but I am not sure about doing it since, currently, it would be the only header I would need to manually provide on them, since all the other included libs (from different apps: http://www.gentoo.org/proj/en/base/amd64/emul/content.xml ) seem to work fine with "common header" provided by "standard" ebuilds , this is why I think that it could be an mpg123 problem :-/
Comment 8 Pacho Ramos gentoo-dev 2010-01-20 22:13:59 UTC
(In reply to comment #7)
> As a workaround I suppose that I could maybe provide 64 bits header on emul
> package that is containing mpg123 libs

Or, other option that comes to my mind now, maybe mpg123 ebuild could add a "multilib" USE flag that, when enabled, would *also* install 64 bits header file, but I am not sure if it would work and wine would "see" both headers choosing correct (-> 64 bits in our case) one 
Comment 9 Thomas Orgis 2010-01-20 23:49:26 UTC
Are you _sure_ that you don't need to take care for other headers in the 32bit libs package? Well, I suspect that at least some of the packaged libraries are prone to bugs from inconsistent large file setup (user builds some own 32 bit app and forgets to activate the large file support machinery).

I made the mpg123 header picky about that after reading through the stuff at
http://ac-archive.sourceforge.net/largefile/index.html

Distro packagers might enjoy reading that... or not;-) If you only care about stuff built via ebuilds, and all ebuilds enable large file support, the issue I am carefully trying to avoid with the header is practically non-existent.

Anyhow, the wine bug tracker entry has a patch attached that solves the issue for the practical purposes of a x86 / x86-64 multilib install with large file support always-on. I recommend just installing the patched mpg123 header for this specific case (just make sure you don't break mpg123 on alpha, since gentoo is one of the few distros still supporting that;-).
Keeping that patch up to date won't be that difficult... adding some function symbol from time to time.
Comment 10 Jan Essert 2010-02-10 21:49:32 UTC
I just wanted to ask about the status of this bug.
I cannot play Oblivion in wine because the missing mp3 support makes it unbearably slow, so this is a critical bug for me ;)

As far as I can see, there is a patch attached to the wine bug report against mpg123 which is supposed to fix this issue. Could we perhaps just apply this patch and update the emul-soundlibs package?

That would be great!
Comment 11 Thomas Orgis 2010-02-11 09:39:53 UTC
Please have a look at my latest comment on http://bugs.winehq.org/show_bug.cgi?id=20042 how about that solution? The gentoo ebuild for wine would just need to add 
   -DMPG123_FORCE_LARGEFILE=_64
to its CPPFLAGS (since it knows that gentoo 32-bit libmpg123 has been built with largefile support, right?).

Until the new mpg123 version is released, you could just install the attached header from the wine bug, or more cleanly, pull in svn://orgis.org/mpg123/tags/1.10.1/src/libmpg123/mpg123.h.in for the mpg123 build.
Comment 12 Thomas Orgis 2010-02-13 17:38:26 UTC
Hello? Still alive?

Since reception for my last hack is not that stellar, I resorted to simply dropping the check I have put in place to help the world to recognize the isse about large file support... now the header is identical for 64 and 32 bits, you will simply get linker errors when the setup does not match.

Please check out http://mpg123.org/download/mpg123-1.10.1-prerelease.tar.bz2 and tell me if you are happy with the header that one installs. This might be an upcoming release.

PS: You still should put effort into fixing the multilib system to check if headers differ and install wrappers that select the correct one in that case. This can be automated easily, really (I mean, after you already got your hands dirty by messing with multilib at all;-).

PPS: I might be off now to run some old game in my wine that I installed into a nicely separated chroot, which also double-functions as resource for 32 bit libs for the normal system, if there is need;-)
Comment 13 Samuli Suominen (RETIRED) gentoo-dev 2010-02-13 17:52:37 UTC
(In reply to comment #12)
> Since reception for my last hack is not that stellar, I resorted to simply
> dropping the check I have put in place to help the world to recognize the isse
> about large file support... now the header is identical for 64 and 32 bits, you
> will simply get linker errors when the setup does not match.

Sounds good. Committed this prerelease to Portage (note: unkeyworded, so it won't be show up unless you make it to) so people intrested here can easily test it.

+*mpg123-1.10.1_pre (13 Feb 2010)
+
+  13 Feb 2010; Samuli Suominen <ssuominen@gentoo.org>
+  +mpg123-1.10.1_pre.ebuild:
+  Commit unkeyworded prerelease for testing bug 299490.
Comment 14 Pacho Ramos gentoo-dev 2010-02-19 19:50:56 UTC
(In reply to comment #12)
> Hello? Still alive?
> 
> Since reception for my last hack is not that stellar, I resorted to simply
> dropping the check I have put in place to help the world to recognize the isse
> about large file support... now the header is identical for 64 and 32 bits, you
> will simply get linker errors when the setup does not match.
> 
> Please check out http://mpg123.org/download/mpg123-1.10.1-prerelease.tar.bz2
> and tell me if you are happy with the header that one installs. This might be
> an upcoming release.

It seems to fix the problem, now wine compiles fine against it and seems to work  fine

Thanks a lot :-D

Sorry for the delay, but, at some point I forgot this problem :-( (thanks to Samuli for remembering me it)
Comment 15 Samuli Suominen (RETIRED) gentoo-dev 2010-03-20 08:26:36 UTC
1.10.1 final is in Portage, resolving this for us per Comment #14

then there is 1.11.1_pre which has more work on this, please read about it more on http://www.mpg123.org/ news section
Comment 16 Samuli Suominen (RETIRED) gentoo-dev 2010-04-25 13:48:04 UTC
This problem should be closed with stabilization in bug 317125 for good.
Comment 17 Mehrunes Dagon 2011-04-28 16:36:33 UTC
Created attachment 271469 [details]
emerge --info app-emulation/wine

(In reply to comment #16)
> This problem should be closed with stabilization in bug 317125 for good.

as of today, the problem is here again:

app-emulation/wine-1.2.1 does not compile with media-sound/mpg123-1.12.1,

error message:

checking for mpg123_feed in -lmpg123... no

steps to reproduce:

1) emerge =media-sound/mpg123-1.12.1
2) USE=mp3 emerge =app-emulation/wine-1.2.1
Comment 18 Mehrunes Dagon 2011-04-28 16:42:22 UTC
I reopen the bug... oops, reopening seems to be disallowed for me
Comment 19 Mehrunes Dagon 2011-04-28 16:46:40 UTC
Created attachment 271471 [details]
failed emerge log
Comment 20 Thomas Orgis 2011-04-30 08:33:54 UTC
Can we see a config.log as hinted in the emerge log?

!!! Please attach the following file when seeking support:
!!! /tmp/portage/app-emulation/wine-1.2.1/work/wine32/config.log

I'd like to see what build test has been performed exactly.

Oh, and please update to a later version of mpg123 than 1.12.1 ... 1.12.2 introduced some more library alias symbols that might even help here ... and the further 1.12.x releases added bugfixes. Oh again, did I mention that we're actually at version 1.13.3? ;-)

But then ... I see that the symbol in question is the function mpg123_feed ... that one is not largefile-senstive at all. Is the 32 bit libmpg123 actually available on your system? That's what the config.log might tell...
Comment 21 Mehrunes Dagon 2011-05-04 04:02:53 UTC
Created attachment 272031 [details]
config.log, attempting to build wine over mpg123 version 1.13.2

Upgrading mpg123 to version 1.13.2 does not help

I attach 4 files

x.y.z-config.log   :  config.log of wine building over mpg123-x.y-z
x.y.z-emerge.log   :  emerge.log of wine building over mpg123-x.y-z
Comment 22 Mehrunes Dagon 2011-05-04 04:09:05 UTC
(In reply to comment #21)
> I attach 4 files
> 
> x.y.z-config.log   :  config.log of wine building over mpg123-x.y-z
> x.y.z-emerge.log   :  emerge.log of wine building over mpg123-x.y-z

bugtracker does not allow me to post another file saying

You already used the form to file attachment 272031 [details]

so i will compress the remaining 3 files and re-try
Comment 23 Mehrunes Dagon 2011-05-04 04:16:36 UTC
Created attachment 272033 [details]
this is my 4-th attempt to submit files
Comment 24 Mehrunes Dagon 2011-05-04 04:25:41 UTC
I will try mpg123-1.13.3 soon (need to upgrade portage)

Expect results in approximately 10 hours
Comment 25 Thomas Orgis 2011-05-04 11:29:43 UTC
Well ... as I suspected:

configure:11433: x86_64-pc-linux-gnu-gcc -m32 -o conftest -O2 -march=native -pipe  -Wl,-O1 -Wl,--as-needed conftest.c -lmpg123   >&5
/usr/lib/gcc/x86_64-pc-linux-gnu/4.3.4/../../../../x86_64-pc-linux-gnu/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-pc-linux-gnu/4.3.4/../../../libmpg123.so when searching for -lmpg123
/usr/lib/gcc/x86_64-pc-linux-gnu/4.3.4/../../../../x86_64-pc-linux-gnu/bin/ld: skipping incompatible /usr/lib/libmpg123.so when searching for -lmpg123
/usr/lib/gcc/x86_64-pc-linux-gnu/4.3.4/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lmpg123


Where is your 32 bit libmpg123? You only seem to have the 64 bit library installed. For wine you need 32 bit stuff ... isn't that what this emul-soundlibs package is for? Don't you have that installed?

(Sorry for my ignorance: I'm not using gentoo, just maintaining mpg123.)
Comment 26 Mehrunes Dagon 2011-05-04 15:31:34 UTC
(In reply to comment #25)
> Where is your 32 bit libmpg123? You only seem to have the 64 bit library
> installed. For wine you need 32 bit stuff ... isn't that what this
> emul-soundlibs package is for? Don't you have that installed?
> 
> (Sorry for my ignorance: I'm not using gentoo, just maintaining mpg123.)

Thanks, Thomas. 

emerging app-emulation/emul-linux-x86-soundlibs-20110129, media-sound/mpg123-1.13.3, app-emulation/wine-1.3.18 was a success

And if you happen to meet wine ebuild maintainer, tell him to include conditional dependancy:

amd64? (wine32? ( app-emulation/emul-linux-x86-soundlibs ) )