[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Problems building libsdl1.2 on hppa & ia64



libsdl1.2 currently won't build on either hppa or ia64.  I'm not sure
how to fix the problem and which package to file a bug against, so I'm
posting here for help.

Here's the problem (on hppa, since the error messages are clearer):

gcc -shared  SDL.lo SDL_error.lo SDL_fatal.lo SDL_getenv.lo -Wl,--whole-archive main/.libs/libarch.al audio/.libs/libaudio.al video/.libs/libvideo.al events/.libs/libevents.al joystick/.libs/libjoystick.al cdrom/.libs/libcdrom.al thread/.libs/libthread.al timer/.libs/libtimer.al endian/.libs/libendian.al file/.libs/libfile.al -Wl,--no-whole-archive  -lm -L/usr/lib -lesd -laudiofile -lm -L/usr/X11R6/lib -lX11 -lXext -lXxf86vm -lXxf86dga -lXv -ldl -lc  -Wl,-soname -Wl,libSDL-1.2.so.0 -o .libs/libSDL-1.2.so.0.0.1
/usr/bin/ld: XF86VMode.o: relocation R_PARISC_DPREL21L can not be used when making a shared object; recompile with -fPIC

What's going on is that ld is trying to construct a shared
library (libSDL-1.2.so.0.0.1), and it needs to link in files
from libXxf86dga.  However, that lib is only built statically
(ie as a .a; no .so variant).  According to Andreas Schwab in
http://sources.redhat.com/ml/binutils/2001-06/msg00634.html:

	You are linking a non-pic object file into a shared library.
	This is not portable and does not work on ia64.

So how to fix it?  Well, libXxf86dga could be provided as a .so as well
(presumably, I _really_ don't feel like hacking my way through XFree86
if I don't have to).  Or we could configure libsdl1.2 to only build a
static lib, but I don't know what repercussions that would have.

Perhaps there's another way.  Assistance appreciated, since both hppa
and ia64 have libsdl1.2 as a top-5 blocker right now.  (And one of the
blocked packages is tuxracer, so this really is release-critical.)

-- 
Revolutions do not require corporate support.



Reply to: