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)
        [EMAIL PROTECTED] [ -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:
        [EMAIL PROTECTED] [ -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.  :)


_______________________________________________
Devel mailing list
Devel@XFree86.Org
http://XFree86.Org/mailman/listinfo/devel

Reply via email to