http://bugs.winehq.org/show_bug.cgi?id=4630
------- Additional Comments From Andrew.Talbot@talbotville.com 2006-20-02 16:30 ------- (1) When making ddraw.dll, gcc is correctly instructed to compile each component C file 32-bit, with the correct X11 include path, e.g.:
make[2]: Entering directory `~/wine/dlls/ddraw' gcc -m32 -c -I. -I. -I../../include -I../../include -I/usr/X11R6/include -D__WINESRC__ -D_REENTRANT -fPIC -Wall -pipe -fno-strict-aliasing -gstabs+ -Wdeclaration-after-statement -Wpointer-arith -g -O2 -o clipper.o clipper.c
But it seems that winegcc is then being hardwired to look to the 64-bit X11 libraries, whereas it needs the 32-bit ones:
../../tools/winegcc/winegcc -B../../tools/winebuild -shared ./ddraw.spec clipper.o ddraw_hal.o ddraw_main.o ddraw_thunks.o ddraw_user.o ddraw_utils.o main.o palette_hal.o palette_main.o regsvr.o surface_dib.o surface_fakezbuffer.o surface_gamma.o surface_hal.o surface_main.o surface_thunks.o surface_user.o surface_wndproc.o version.res -o ddraw.dll.so -L../../dlls -L../../dlls/ole32 -L../../dlls/user32 -L../../dlls/gdi32 -L../../dlls/advapi32 -L../../dlls/kernel32 -L../../dlls/ntdll -lole32 -luser32 -lgdi32 -ladvapi32 -lkernel32 -lntdll -L../../libs/wine -lwine -ldxguid -luuid -L/usr/X11R6/lib64 -lXext -lX11 -L../../libs/port -lwine_port /usr/lib64/gcc/x86_64-suse-linux/4.0.2/../../../../x86_64-suse-linux/bin/ld: skipping incompatible /usr/X11R6/lib64/libXext.so when searching for -lXext /usr/lib64/gcc/x86_64-suse-linux/4.0.2/../../../../x86_64-suse-linux/bin/ld: skipping incompatible /usr/X11R6/lib64/libXext.a when searching for -lXext /usr/lib64/gcc/x86_64-suse-linux/4.0.2/../../../../x86_64-suse-linux/bin/ld: cannot find -lXext collect2: ld returned 1 exit status
Using --x-libraries=/usr/X11/lib will solve that problem, but - and with respect - I wonder how widespread the issue is among 64-bit users, and whether it might need addressing in code.
(2) /usr/local/lib *is* in my ld.so.conf file. I expect that using ./configure --prefix=/usr will work, since *everything* will then be prepared for an installation directly below /usr, so the libwine* files will conveniently be in the right place. However, if one wishes to deliberately install wine under /usr/local, then I would have thought that Wine *should* place its libwine* files in /usr/local/lib and be configured to look for them there.