Subject: Re: PLT errors with XFree86?
To: Andrew van der Stock <ajv@greebo.net>
From: Simon Burge <simonb@wasabisystems.com>
List: port-alpha
Date: 03/02/2001 22:02:57
"Andrew van der Stock" wrote:

> Talking about toolchain problems, what are the options to fixing the PLT
> errors that the current Xsrc suffers from?
> 
> Is it:
> 
> a) a toolchain issue (ie, do we have a compiler/linker problem?)
> b) a code issue (ie, is there something funky that the statically linked
> Xserver is doing that it shouldn't)?
> c) a suffusion of yellow (ie, X will never work on NetBSD/alpha)
> 
> 4.0.3 has now gone release candidate, so we've missed 4.0.3. To make 4.1.0
> we need to get this fixed and in before the end of March.

I've not yet had a chance to try it, but Jason Thorpe has suggested
adding "--export-dynamic" to the link flags for the Xserver.  The
following is untried but should do the trick:

Index: NetBSD.cf
===================================================================
RCS file: /cvsroot/xsrc/xfree/xc/config/cf/NetBSD.cf,v
retrieving revision 1.2
diff -d -p -u -r1.2 NetBSD.cf
--- NetBSD.cf	2001/01/13 15:44:52	1.2
+++ NetBSD.cf	2001/03/02 10:56:11
@@ -177,6 +177,7 @@ XCOMM operating system:  OSName (OSMajor
 #  define ServerOSDefines 	-DDDXOSINIT
 # elif defined(AlphaArchitecture)
 #  define ServerOSDefines 	XFree86ServerOSDefines -DDDXTIME -DDDXOSINIT
+#  define ExtraLoadFlags --export-dynamic -Wl,-rpath,$(USRLIBDIRPATH) -Wl,-rpath-link,$(BUILDLIBDIR)
 # elif defined(Arm32Architecture)
 #  define ServerOSDefines	XFree86ServerOSDefines -DDDXTIME
 # else


If you've got an already built X server, just add the "--export-dynamic"
to the EXTRA_LOAD_FLAGS in xc/programs/Xserver/Makefile, remove the
XFree86 binary and type "make".

Andrew - is there a cleaner way of adding a link flag?  Using the
above diff means you need to track any changes in ExtraLoadFlags in
bsdLib.rules...

Simon.
--
Simon Burge                            <simonb@wasabisystems.com>
NetBSD CDs, Support and Service:    http://www.wasabisystems.com/