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

SciFi <[email protected]>
Newsgroups gmane.comp.xfree86.devel
Message-ID <[email protected]>
Hi,


(This is part of a collection of patches and workarounds I have
for consideration for problems in the build process in current
cvs.  I'll just briefly describe each patch(-set) below, and if
needed will put them into bugzilla separately with more details.)


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

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-<<<<


I'm guessing at the above patch, still need to make distclean to
try it out again.

As a quick local fix, I actually hand-edited the related Makefile
in this manner:

>>>>-cut->>>>
--- build/programs/Xserver/Makefile_orig	2007-04-11 00:03:37 -0500
+++ build/programs/Xserver/Makefile	2007-04-11 01:53:54 -0500
@@ -1252,12 +1252,12 @@
 Xdmx:  	$(XDMXDIRS)
 	-@if [ -f $@ ]; then set -x; \
 	$(MV) $@ [email protected]; else exit 0; fi
-	$(CCLINK) -o $@ $(LDOPTIONS)  	$(XDMXOBJS) $(XDMXDEFFILE)  	$(XDMXLIBS) $(LDLIBS)  	$(XDMXSYSLIBS) $(EXTRA_LOAD_FLAGS)
+	$(CCLINK) -o $@ $(LDOPTIONS)  	$(XDMXOBJS) $(XDMXDEFFILE)  	$(XDMXLIBS) $(LDLIBS)  	$(XDMXSYSLIBS) $(EXTRA_LOAD_FLAGS) $(IOKITLIB) GL/mesa/GLcore/libGLcore.a -Wl,-m
 
 loadXdmx:
 	-@if [ -f Xdmx ]; then set -x; \
 	$(MV) Xdmx Xdmx.bak; else exit 0; fi
-	$(CCLINK) -o Xdmx $(LDOPTIONS)  	$(XDMXOBJS) $(XDMXDEFFILE)  	$(XDMXLIBS) $(LDLIBS)  	$(XDMXSYSLIBS) $(EXTRA_LOAD_FLAGS)
+	$(CCLINK) -o Xdmx $(LDOPTIONS)  	$(XDMXOBJS) $(XDMXDEFFILE)  	$(XDMXLIBS) $(LDLIBS)  	$(XDMXSYSLIBS) $(EXTRA_LOAD_FLAGS) $(IOKITLIB) GL/mesa/GLcore/libGLcore.a -Wl,-m
 
 loadX:: loadXdmx
 
<<<<-cut-<<<<


Maybe someone could verify that these are indeed related and the
change to Imakefile will indeed create the two changes in the
Makefile.  Shouldn't we add $(IOKITLIB) and libGLcore as
dependencies somehow, tho?  (and of course IOKITLIB only if we
are building for Darwin)

I don't know if Xdmx will work on Darwin anyway, wouldn't Apple's
drivers use the native OSX support for multiple monitors even for
X11 apps?  (using quartz-wm of course)


Thanks for any help.  :)
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.