Subject: Re: XFree86-4.6.0 on Solaris
To: Michael <macallan1888@gmail.com>
From: Raymond Meyer <raymond.meyer@rambler.ru>
List: port-sparc64
Date: 07/15/2006 20:42:22
On Sat, 15 Jul 2006 15:20:01 -0400
Michael <macallan1888@gmail.com> wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> Hello,
> 
> On Jul 15, 2006, at 15:05, Raymond Meyer wrote:
> 
> > Hi, I did manage to build meta-pkgs/xorg on Sparc Solaris.
> > I copied sunffb directory from NetBSD's X11 tree into my local tree 
> > and built the
> > driver. When I run 'X -configure' the Xserver tries to load the 
> > driver, but then it
> > gives the following error message.
> >
> > Couldn't open RGB_DB '/opt/pkg/xorg/lib/X11/rgb'
> > List of video drivers:
> >         sunffb
> > ld.so.1: Xorg: fatal: relocation error: file 
> > /opt/pkg/xorg/lib/modules/drivers/sunffb_drv.so: symbol 
> > xf86MatchSbusInstances: referenced symbol not found
> 
> This function is defined in Xserver/hw/xfree86/common/xf86sbusBus.c, 
> should be built into your XFree86 binary.


[root@ultra10] nm Xorg | grep xf86Match
[3726]  |    402268|     492|FUNC |GLOB |0    |9      |xf86MatchDevice
[4683]  |    405652|     836|FUNC |GLOB |0    |9      |xf86MatchIsaInstances
[3369]  |    402760|    2892|FUNC |GLOB |0    |9      |xf86MatchPciInstances

There is no xf86MatchSbusInstances. This is really strange

bash-3.00$ pwd
/opt/sandbox/opt/pkg.obj/x11/xorg-server/work.ultra10/xc/programs/Xserver/hw/xfree86/common
bash-3.00$ ls xf86sbusBus*
xf86sbusBus.c  xf86sbusBus.h  xf86sbusBus.o
bash-3.00$ nm xf86sbusBus.o | grep xf86Match
[36]    |      3492|    1764|FUNC |GLOB |0    |2      |xf86MatchSbusInstances

I struggle to understand how this symbol can go missing. Maybe some Makefile didn't include some object files??

bash-3.00$ pwd
/opt/sandbox/opt/pkg.obj/x11/xorg-server/work.ultra10/xc/programs/Xserver/hw/xfree86/common
bash-3.00$ nm libxf86.a | grep xf86Match
[88]    |     13388|     492|FUNC |GLOB |0    |2      |xf86MatchDevice
[97]    |     16772|     836|FUNC |GLOB |0    |2      |xf86MatchIsaInstances
[93]    |     13880|    2892|FUNC |GLOB |0    |2      |xf86MatchPciInstances
[36]    |      3492|    1764|FUNC |GLOB |0    |2      |xf86MatchSbusInstances

How do all *.o files get linked into the final Xorg binary? What is libxf86.a for, does it get linked into Xorg binary, or is it used somewhere else?