I'm trying to compile a 32-bit version of gtkglext on my 64-bit machine. My gcc supports multilib, but there is a really annoying step in the build process where it insists on linking in .so files from /usr/lib:
Code:
gcc -m32 -shared .libs/gdkglversion.o .libs/gdkglinit.o .libs/gdkglquery.o
.libs/gdkglconfig.o .libs/gdkglcontext.o .libs/gdkgldrawable.o .libs/gdkglpixmap.o
.libs/gdkglwindow.o .libs/gdkglshapes.o .libs/gdkglglext.o .libs/gdkglenumtypes.o
-Wl,--whole-archive x11/.libs/libgdkglext-x11.a -Wl,--no-whole-archive -L/usr/X11R6/lib
-L/usr/lib -L/usr/lib32 -L/usr/X11R6/lib32 /usr/lib/libGLU.so -lGL -L/usr/X11R6/lib64 -lXmu
-lXt -lSM -lICE /usr/lib/libgdk-x11-2.0.so /usr/lib/libgdk_pixbuf-2.0.so
/usr/lib/libpangoxft-1.0.so /usr/lib/libpangox-1.0.so /usr/lib/libpango-1.0.so
/usr/lib/libgobject-2.0.so /usr/lib/libgmodule-2.0.so -ldl /usr/lib/libglib-2.0.so -lm
-Wl,--export-dynamic -Wl,-soname -Wl,libgdkglext-x11-1.0.so.0 -Wl,-version-script
-Wl,.libs/libgdkglext-x11-1.0.ver -o .libs/libgdkglext-x11-1.0.so.0.2.4
/usr/lib/libGLU.so: could not read symbols: Invalid operation
I want to replace /usr/lib/* with /usr/lib32/*. If I do it manually, it works; I can create .libs/libgdkglext-x11-1.0.so.0.2.4. If I try to resume the build process, though, it insists on trying to build .libs/libgdkglext-x11-1.0.so.0.2.4 again (and it fails). Why does it insist on linking these libraries at compile time instead of runtime? And I can't see where that command is coming from in the Makefile. "grep /usr/lib/libGL *" and "grep /usr/lib/libGL gdk/*" don't find anything. Help anyone?