Re: Link problems with Xdmx, may be Darwin-only(?)

Marc Aurele La France <[email protected]>
Newsgroups gmane.comp.xfree86.devel
Message-ID <Pine.WNT.4.64.0704142300110.1460@tsi>
On Wed, 11 Apr 2007, SciFi wrote:

> 5.  Link problems with Xdmx, may be Darwin-only(?)

> Build Log snip:

>>>>>
> [...]  -Wall -UNEED_SCREEN_REGIONS     -L../../exports/lib    	hw/dmx/dix/main.o hw/dmx/miinitext.o                      GL/mesa/main/dispatch.o   	hw/dmx/dix/libdix.a hw/dmx/os/libos.a hw/dmx/libdmxlib.a hw/dmx/config/libdmxconfig.a 		     hw/dmx/glxProxy/libglxProxy.a 		     miext/shadow/libshadow.a fb/libfb.a mi/libmi.a hw/dmx/Xext/libext.a record/librecord.a XTrap/libxtrap.a xkb/libxkb.a Xi/libxinput.a lbx/liblbx.a 		     ../../lib/lbxutil/liblbxutil.a  render/librender.a hw/dmx/input/libdmxinput.a -L/usr/X11R6/lib     	-L../../exports/lib  -lXfont -L/usr/local/lib -lfreetype ../../lib/font/stubs/libfntstubs.a -L../../exports/lib   -lXi -lXmu -lXt -lSM -lICE -lXext -lX11 		     -lXrender -lXext -lX11 -lz    		     -lXdmcp
> /usr/bin/ld: Undefined symbols:
> _DarwinGlxExtensionInit
> _DarwinGlxWrapInitVisuals
> __glapi_Dispatch
> [...]
> <<<<

> To recreate:

> Enable the Xdmx options in your [build/]config/cf/host.def file,
> e.g.
> #define XdmxServer		YES

You also have XFree86Devel set to YES.

> Build with latest XCode (Apple-provided gcc, ld, etc.).

> Possibly related env-vars:
> export MACOSX_DEPLOYMENT_TARGET="10.4"
> export SDKROOT="/Developer/SDKs/MacOSX10.4u.sdk"
> export SDK="${SDKROOT}"
> ...and maybe others...

> $ gcc --version
> powerpc-apple-darwin8-gcc-4.0.1 (GCC) 4.0.1 (Apple Computer, Inc. build 5367)
> [...]

> $ uname -a
> Darwin <hostname> 8.9.0 Darwin Kernel Version 8.9.0: Thu Feb 22 20:54:07 PST 2007; root:xnu-792.17.14~1/RELEASE_PPC Power Macintosh powerpc PowerMac7,3 Darwin

> (OSX 10.4.9 running on a Dual G5 2.7GHz with 3.5GB of matched-pair
> SDRAM and more...)

> Discussion:

> Some libs aren't being included at all during the link phase for
> Xdmx.

> I _think_ this is how it might be fixed:

>>>>> -cut->>>>
> --- xc/programs/Xserver/Imakefile_orig	2007-04-10 20:58:18 -0500
> +++ xc/programs/Xserver/Imakefile	2007-04-11 01:57:39 -0500
> @@ -1454,7 +1454,7 @@
> 	$(XDMXDIRS), \
> 	$(XDMXOBJS) $(XDMXDEFFILE), \
> 	$(XDMXLIBS), \
> -	$(XDMXSYSLIBS))
> +	$(XDMXSYSLIBS) $(IOKITLIB) GL/mesa/GLcore/libGLcore.a -Wl,-m)
> #endif /* XdmxServer */
>
>
> <<<<-cut-<<<<

No.  Xdmx has its own GLX implementation.

The patch below should fix this:

*** cvs/xc/programs/Xserver/Imakefile	Mon Apr  9 09:19:10 2007
--- devel/xc/programs/Xserver/Imakefile	Sat Apr 14 23:00:06 2007
*************** XCOMM
*** 1427,1436 ****
   		     $(DMXEXTDIRS) $(SHADOWDIR) $(DEPDIRS)
   #if BuildGlxInDmx
          GLXPROXYLIB = $(XDMXDDXDIR)/glxProxy/LibraryTargetName(glxProxy)
-         XDMXGLOBJS = $(GLOBJS)
   #endif
!           XDMXOBJS = $(XDMXDDXDIR)/dix/main.o $(XDMXDDXDIR)/miinitext.o \
!                      $(XDMXGLOBJS)
            XDMXINPUT = $(XDMXDDXDIR)/input/LibraryTargetName(dmxinput)
           XDMXCONFIG = $(XDMXDDXDIR)/config/LibraryTargetName(dmxconfig)
                 XDMX = $(XDMXDDXDIR)/LibraryTargetName(dmxlib) $(XDMXCONFIG) \
--- 1427,1434 ----
   		     $(DMXEXTDIRS) $(SHADOWDIR) $(DEPDIRS)
   #if BuildGlxInDmx
          GLXPROXYLIB = $(XDMXDDXDIR)/glxProxy/LibraryTargetName(glxProxy)
   #endif
!           XDMXOBJS = $(XDMXDDXDIR)/dix/main.o $(XDMXDDXDIR)/miinitext.o
            XDMXINPUT = $(XDMXDDXDIR)/input/LibraryTargetName(dmxinput)
           XDMXCONFIG = $(XDMXDDXDIR)/config/LibraryTargetName(dmxconfig)
                 XDMX = $(XDMXDDXDIR)/LibraryTargetName(dmxlib) $(XDMXCONFIG) \
*** cvs/xc/programs/Xserver/hw/dmx/glxProxy/glxext.c	Fri Jan 19 08:37:02 2007
--- devel/xc/programs/Xserver/hw/dmx/glxProxy/glxext.c	Sat Apr 14 22:48:48 2007
*************** void __glXNoSuchRenderOpcode(GLbyte *pc)
*** 518,520 ****
--- 518,534 ----
       return;
   }

+ #ifdef __DARWIN__
+ void
+ DarwinGlxExtensionInit(INITARGS)
+ {
+     GlxExtensionInit();
+ }
+
+ void
+ DarwinGlxWrapInitVisuals(
+     void *procPtr)
+ {
+     GlxWrapInitVisuals(procPtr);
+ }
+ #endif

Marc.

+----------------------------------+----------------------------------+
|  Marc Aurele La France           |  work:   1-780-492-9310          |
|  Academic Information and        |  fax:    1-780-492-1729          |
|    Communications Technologies   |  email:  [email protected]         |
|  352 General Services Building   +----------------------------------+
|  University of Alberta           |                                  |
|  Edmonton, Alberta               |    Standard disclaimers apply    |
|  T6G 2H1                         |                                  |
|  CANADA                          |                                  |
+----------------------------------+----------------------------------+
XFree86 developer and VP.  ATI driver and X server internals.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.