Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 110795 - wine 20050930 or 0.9 doesn't compile due to undefined reference to wine_pthread_set_functions
Summary: wine 20050930 or 0.9 doesn't compile due to undefined reference to wine_pthre...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Unspecified (show other bugs)
Hardware: AMD64 Linux
: High normal (vote)
Assignee: Wine Maintainers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-10-29 08:51 UTC by Marvin
Modified: 2006-03-04 20:33 UTC (History)
1 user (show)

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


Attachments
Config.log (config.log,608.18 KB, text/plain)
2005-10-29 08:53 UTC, Marvin
Details
Patch for wine to recognize gcc's -m32 option. (wine-winegcc-m32.patch,349 bytes, patch)
2005-12-06 08:07 UTC, Thomas Tuegel
Details | Diff
New ebuild, fixing -m32 linking and library paths. (wine-0.9.2-r1.ebuild,3.84 KB, text/plain)
2005-12-06 08:08 UTC, Thomas Tuegel
Details
New ebuild for wine-0.9.4 that fixes the compilation problem (again). (wine-0.9.4-r1.ebuild,4.18 KB, text/plain)
2005-12-27 18:08 UTC, Thomas Tuegel
Details
New patch for the wine-0.9.4 ebuild. (wine-0.9.3-gcc-32bit.patch,454 bytes, patch)
2005-12-27 18:10 UTC, Thomas Tuegel
Details | Diff
wine-0.9.9 updated ebuild with patches (wine-0.9.9-r1.tar.gz,2.89 KB, application/gzip)
2006-03-04 08:54 UTC, razor1394
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Marvin 2005-10-29 08:51:44 UTC
I cannot emerge wine-20050930 or 0.9.  Here is the error
---
main.o(.text+0x58): In function `main':
/var/tmp/portage/wine-0.9/work/wine-0.9/loader/main.c:44: undefined reference to
`wine_pthread_set_functions'
collect2: ld returned 1 exit status
make[1]: *** [wine-kthread] Error 1
make[1]: Leaving directory `/var/tmp/portage/wine-0.9/work/wine-0.9/loader'
make: *** [loader] Error 2
---

emerge info follows
---
Portage 2.0.51.22-r3 (default-linux/amd64/2005.1, gcc-3.4.4, glibc-2.3.5-r2,
2.6.14-gentoo x86_64)
=================================================================
System uname: 2.6.14-gentoo x86_64 AMD Athlon(tm) 64 Processor 3000+
Gentoo Base System version 1.6.13
distcc 2.18.3 x86_64-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled]
dev-lang/python:     2.3.5-r2, 2.4.1-r1
sys-apps/sandbox:    1.2.9
sys-devel/autoconf:  2.13, 2.59-r6
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r1
sys-devel/binutils:  2.15.92.0.2-r10
sys-devel/libtool:   1.5.20
virtual/os-headers:  2.6.11-r2
ACCEPT_KEYWORDS="amd64"
AUTOCLEAN="yes"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=k8 -O2"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3/share/config
/usr/lib/X11/xkb /usr/lib64/mozilla/defaults/pref /usr/share/config
/var/qmail/alias /var/qmail/control /var/vpopmail/domains /var/vpopmail/etc"
CONFIG_PROTECT_MASK="/etc/gconf /etc/splash /etc/terminfo /etc/texmf/web2c
/etc/env.d"
CXXFLAGS="-march=k8 -O2"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig distlocks sandbox sfperms strict"
GENTOO_MIRRORS="http://gentoo.mirrors.easynews.com/linux/gentoo/
http://gentoo.ccccom.com http://mirror.espri.arizona.edu/gentoo/
http://gentoo.chem.wisc.edu/gentoo/ ftp://gentoo.ccccom.com"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="amd64 X aalib acpi aim alsa artworkextra avi berkdb bitmap-fonts bonobo cdr
crypt cups curl dbus debug dvd dvdr dvi eds emboss encode esd flac font-server
foomaticdb fortran gif gimpprint glitz gnome gnutls gphoto2 gpm gstreamer gtk
gtk2 gtkhtml guile hal imagemagick imlib ipv6 java jpeg ldap libwww lzw lzw-tiff
mad motif mozilla mp3 mpeg mysql nas nautilus ncurses new-login nls nowin nptl
numeric nvidia ofx ogg oggvorbis opengl pam pda pdflib perl png ppds python qt
quicktime readline scanner sdl spell sqlite ssl svg t1lib tcltk tcpd tetex
theora tiff truetype truetype-fonts type1-fonts udev usb userlocales videos
vorbis xine xinerama xml xml2 xmms xpm xv xvid yahoo zlib userland_GNU
kernel_linux elibc_glibc"
Unset:  ASFLAGS, CTARGET, LANG, LC_ALL, LDFLAGS, LINGUAS
---

Reproducible: Always
Steps to Reproduce:
1. emerge =wine-0.9
2.
3.



Expected Results:  
wine installed
Comment 1 Marvin 2005-10-29 08:53:20 UTC
Created attachment 71678 [details]
Config.log

Here is the config.log in case it is helpful.
Comment 2 SpanKY gentoo-dev 2005-10-29 20:44:09 UTC
post the lines before the error message
Comment 3 Marvin 2005-10-29 21:50:36 UTC
(In reply to comment #2)
> post the lines before the error message

Don't know how many lines before or after you would like to see.  Anyway, here's
some from before.
---
make[1]: Leaving directory `/var/tmp/portage/wine-0.9/work/wine-0.9/include'
make[1]: Entering directory `/var/tmp/portage/wine-0.9/work/wine-0.9/server'
x86_64-pc-linux-gnu-gcc -c -I. -I. -I../include -I../include  -D__WINESRC__ 
-Wall -pipe -mpreferred-stack-boundary=2 -fno-strict-aliasing -gstabs+
-Wdeclaration-after-statement -Wpointer-arith  -march=k8 -O2  -o atom.o atom.c
x86_64-pc-linux-gnu-gcc -c -I. -I. -I../include -I../include    -Wall -pipe
-mpreferred-stack-boundary=2 -fno-strict-aliasing -gstabs+
-Wdeclaration-after-statement -Wpointer-arith  -march=k8 -O2 -fno-pic
-fno-stack-protector  -o kthread.o kthread.c
x86_64-pc-linux-gnu-gcc -c -I. -I. -I../include -I../include    -Wall -pipe
-mpreferred-stack-boundary=2 -fno-strict-aliasing -gstabs+
-Wdeclaration-after-statement -Wpointer-arith  -march=k8 -O2 -fno-pic
-fno-stack-protector  -o main.o main.c
x86_64-pc-linux-gnu-gcc -c -I. -I. -I../include -I../include  -D__WINESRC__ 
-Wall -pipe -mpreferred-stack-boundary=2 -fno-strict-aliasing -gstabs+
-Wdeclaration-after-statement -Wpointer-arith  -march=k8 -O2  -o change.o change.c
x86_64-pc-linux-gnu-gcc -c -I. -I. -I../include -I../include    -Wall -pipe
-mpreferred-stack-boundary=2 -fno-strict-aliasing -gstabs+
-Wdeclaration-after-statement -Wpointer-arith  -march=k8 -O2 -fno-pic
-fno-stack-protector  -o pthread.o pthread.c
x86_64-pc-linux-gnu-gcc -c -I. -I. -I../include -I../include    -Wall -pipe
-mpreferred-stack-boundary=2 -fno-strict-aliasing -gstabs+
-Wdeclaration-after-statement -Wpointer-arith  -march=k8 -O2 -fno-pic
-fno-stack-protector  -o preloader.o preloader.c
x86_64-pc-linux-gnu-gcc -c -I. -I. -I../include -I../include  -D__WINESRC__ 
-Wall -pipe -mpreferred-stack-boundary=2 -fno-strict-aliasing -gstabs+
-Wdeclaration-after-statement -Wpointer-arith  -march=k8 -O2  -o class.o class.c
sed -e 's,@bindir\@,/usr/bin,g' -e 's,@dlldir\@,/usr/lib32/wine,g' -e
's,@PACKAGE_STRING\@,Wine 0.9,g' wine.man.in >wine.man || (rm -f wine.man && false)
x86_64-pc-linux-gnu-gcc -c -I. -I. -I../include -I../include  -D__WINESRC__ 
-Wall -pipe -mpreferred-stack-boundary=2 -fno-strict-aliasing -gstabs+
-Wdeclaration-after-statement -Wpointer-arith  -march=k8 -O2  -o clipboard.o
clipboard.c
x86_64-pc-linux-gnu-gcc -o wine-glibc glibc.o -L../libs/wine -lwine
-L../libs/port -lwine_port -lpthread
x86_64-pc-linux-gnu-gcc -o wine-kthread -Wl,--export-dynamic
-Wl,--section-start,.interp=0x7bf00400 kthread.o main.o -L../libs/wine -lwine
-L../libs/port -lwine_port
x86_64-pc-linux-gnu-gcc -c -I. -I. -I../include -I../include  -D__WINESRC__ 
-Wall -pipe -mpreferred-stack-boundary=2 -fno-strict-aliasing -gstabs+
-Wdeclaration-after-statement -Wpointer-arith  -march=k8 -O2  -o console.o console.c
main.o(.text+0x58): In function `main':
/var/tmp/portage/wine-0.9/work/wine-0.9/loader/main.c:44: undefined reference to
`wine_pthread_set_functions'
collect2: ld returned 1 exit status
make[1]: *** [wine-kthread] Error 1
make[1]: Leaving directory `/var/tmp/portage/wine-0.9/work/wine-0.9/loader'
make: *** [loader] Error 2
make: *** Waiting for unfinished jobs....
Comment 4 razor1394 2005-11-18 12:12:46 UTC
I'm having the same problem with wine-0.9.1. I haven't been able to compile
20050930 or 0.9 either but it was a slightly different problem. Here's my emerge
--info:

Portage 2.0.53_rc7 (default-linux/amd64/2005.0, gcc-3.4.4, glibc-2.3.5-r3,
2.6.14-gentoo-r2 x86_64)
=================================================================
System uname: 2.6.14-gentoo-r2 x86_64 AMD Athlon(tm) 64 Processor 4000+
Gentoo Base System version 1.12.0_pre10
ccache version 2.4 [enabled]
dev-lang/python:     2.3.5, 2.4.2
sys-apps/sandbox:    1.2.13
sys-devel/autoconf:  2.13, 2.59-r7
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r1
sys-devel/binutils:  2.16.1
sys-devel/libtool:   1.5.20-r1
virtual/os-headers:  2.6.11-r2
ACCEPT_KEYWORDS="amd64 ~amd64"
AUTOCLEAN="yes"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=k8 -O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.4/env
/usr/kde/3.4/share/config /usr/kde/3.4/shutdown /usr/kde/3/share/config
/usr/lib/X11/xkb /usr/lib64/mozilla/defaults/pref /usr/share/config
/var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/splash /etc/terminfo /etc/env.d"
CXXFLAGS="-march=k8 -O2 -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig ccache distlocks sandbox sfperms strict userpriv usersandbox"
GENTOO_MIRRORS="http://ftp.du.se/pub/os/gentoo 
http://ds.thn.htu.se/linux/gentoo http://mirror.pudas.net/gentoo 
http://ftp.belnet.be/mirror/rsync.gentoo.org/gentoo/"
LANG="sv_SE.UTF-8"
LC_ALL="sv_SE.UTF-8"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://192.168.0.6/gentoo-portage"
USE="amd64 X a52 aac aalib acpi alsa apm arts audiofile avi berkdb bitmap-fonts
bluetooth bzip2 cdparanoia cdr cdrom crypt cups curl dba dbus disablexmb
divx4linux dts dv dvd dvdr emboss emul-linux-x86 encode esd exif expat f77 faad
fam ffmpeg firefox flac foomaticdb fortran gd gd-external gif gimpprint glut
gnuplot gphoto2 gpm gtk gtk2 hal idn ieee1394 imagemagick imlib java javascript
jikes joystick jpeg jpeg2k kde kdeenablefinal lcms libg++ libwww lirc lm_sensors
lzw lzw-tiff mad matroska mhash mikmod mng motif mp3 mpeg ncurses nls nptl
nptlonly ogg oggvorbis openal opengl oss pam pcre pda pdflib perl php png python
qt quicktime readline real rss ruby scanner sdl server softmmu spell sqlite ssl
tcltk tcpd tiff truetype truetype-fonts type1-fonts udev unicode usb userlocales
vcd visualization vlc vorbis wxwindows xine xml2 xmms xpm xprint xv xvid zlib
~amd64 userland_GNU kernel_linux elibc_glibc"
Unset:  ASFLAGS, CTARGET, LDFLAGS, LINGUAS
Comment 5 Thomas Tuegel 2005-12-06 08:07:06 UTC
Created attachment 74149 [details, diff]
Patch for wine to recognize gcc's -m32 option.
Comment 6 Thomas Tuegel 2005-12-06 08:08:01 UTC
Created attachment 74150 [details]
New ebuild, fixing -m32 linking and library paths.
Comment 7 Thomas Tuegel 2005-12-06 08:08:29 UTC
This problem is caused by gcc skipping libwine because it believes it to be 
incompatible.  Adding the -m32 flag to gcc for linking solves this problem.  
That change is included in the attached ebuild.   
 
However, not all of wine is compiled and linked with gcc, parts are compiled 
with winegcc (built during the build process), which, among other things, ends 
up calling gcc for linking.  winegcc does not recognize the -m32 flag and 
therefore does not pass it on to gcc.  The attached patch adds -m32 to 
winegcc's list of recognized linker flags, so it gets passed to gcc. 
 
To use, put the ebuild in your overlay and the patch in the files directory.  
You'll also need the wine-20050524-alsa-headers.patch, the 
winearts-kdecvs-fix.patch, and the wine-20041019-no-stack.patch in that 
directory.  Digest the ebuild, then emerge =wine-0.9.2-r1. 
 
This compiles and installs wine on my amd64 machine.  Wine appears to work 
correctly, YMMV. 
Comment 8 Marvin 2005-12-06 16:55:43 UTC
(In reply to comment #7)
> This compiles and installs wine on my amd64 machine.  Wine appears to work 
> correctly, YMMV. 

This compiles and installs wine on my amd64 machine as well.  However, trying to
run wine (either wine --version or an application) I get

"
/usr/bin/wine-pthread: relocation error: /usr/bin/wine-pthread: symbol
wine_pthread_set_functions, version WINE_1.0 not defined in file libwine.so.1
with link time reference
"

It appears that /usr/lib points to /usr/lib64 and that an old version (last Jan.
- maybe a binary install) of libwine.so.1 is in /usr/lib64 with the new version
being under /usr/lib32.

Delete libwine* under /usr/lib64.  Recompile.  Now it runs...

Thanks.
Comment 9 SpanKY gentoo-dev 2005-12-06 17:00:32 UTC
sounds good ...

you shouldnt have any wine libraries inside of /usr/lib64 so you should prob
make sure to clean out all of it
Comment 10 Marvin 2005-12-13 20:17:11 UTC
(In reply to comment #6)
> Created an attachment (id=74150) [edit]
> New ebuild, fixing -m32 linking and library paths.
> 

Had same problem with wine-0.9.3.

cp wine-0.9.2-r1.ebuild wine-0.9.3-r1.ebuild
emerge =wine-0.9.3-r1

SUCCESS!!!
Comment 11 Thomas Tuegel 2005-12-27 18:08:28 UTC
Created attachment 75656 [details]
New ebuild for wine-0.9.4 that fixes the compilation problem (again).

This is an adaptation of an ebuild I wrote for wine-0.9.3 (but for some reason never submitted).  It uses a patch I adapted from an older version of the wine ebuild that is slightly more robust than my own attempt.
Comment 12 Thomas Tuegel 2005-12-27 18:10:02 UTC
Created attachment 75657 [details, diff]
New patch for the wine-0.9.4 ebuild.

This patch was originally for wine-0.9.3, but I never posted it.  However, the patched section of code hasn't changed, so it still works.  The new ebuild uses this.
Comment 13 Thomas Tuegel 2005-12-27 18:13:54 UTC
Just wanted to add that the new ebuild I posted is cross-platform compatible (the old one only worked on amd64).

What needs to get done so that the maintainers will keep this updated?  It's not really an upstream bug, so it's not going to just go away.  I'd be happy to take care of this issue, I just want there to be a clearly defined responsibility for this, because it's crippling on an amd64 system.  For the near future, at least, a version bump of the ebuild should work.
Comment 14 SpanKY gentoo-dev 2005-12-28 12:22:07 UTC
i dont see why this cant go upstream, i was using this same fix in earlier versions of wine (~20050725) but dropped it when i stopped needing it on my box
Comment 15 Thomas Tuegel 2005-12-28 19:09:13 UTC
(In reply to comment #14)
> i dont see why this cant go upstream, i was using this same fix in earlier
> versions of wine (~20050725) but dropped it when i stopped needing it on my box

Do you know why it's no longer needed on your box?  That would be very helpful, as I get the feeling that this fix shouldn't be needed in the first place.

Sorry, by "upstream" I meant that I didn't think the developers of wine should have to be responsible for this patch, rather it should be handled in portage by gentoo.  But what do I know?  In any case, that's a discussion for another time.

Comment 16 SpanKY gentoo-dev 2006-01-26 06:08:50 UTC
upstream accepted the patch i sent them so i'll just add this patch to older versions as well
Comment 17 SpanKY gentoo-dev 2006-01-26 16:42:01 UTC
ok, the 32bit patch is now in all versions of wine
Comment 18 razor1394 2006-03-04 08:51:32 UTC
I haven't checked the status of this package for a long time. Did it today and saw that the maintainer removed the gcc patch after wine-0.9.6. Also for this fix to work the ebuild needs to be edited too. I attached an updated ebuild.
Comment 19 razor1394 2006-03-04 08:54:10 UTC
Created attachment 81298 [details]
wine-0.9.9 updated ebuild with patches
Comment 20 SpanKY gentoo-dev 2006-03-04 20:33:43 UTC
> Did it today and saw that the maintainer removed the gcc patch after wine-0.9.6. 

that's because i got the patch committed upstream so there's nothing to do in the ebuild