Modern (gtk/gdk based) desktop applications shipping as part of SXCR are linked 
against /usr/lib/libgdk-x11-2.0.so.0, which in turn still depends on the 
deprecated libXext-function XineramaGetState(), which gets reported as missing 
symbol, whenever an (unpatched default) libXext is found/used by the runtime 
linker, before the Sun-provided historic /usr/openwin/lib/libXext.so.0 would be 
found/used.
This has led to one of the issues, that prevented me from calling 
http://www.martux.org/xorg/fox-gate/20070930sun/bin_pkgadd/Xorg7.2.0_opensol_sparc_snv70_binary_pkgadd__fox-gate_20070930.tar.gz
a more_mature_than_alpha-release. Because the previous release 
http://www.martux.org/xorg/OLD/20070503__7.2.0/bin_pkgadd_packages/
had not shipped with libXext at all, no problems arised when replacing Xsun: 
Gnome could be started, so coud firefox, thunderbird et al. Because the first 
flavour of libXext that would have been found would always be the very version, 
/usr/lib/libgdk-x11-2.0.so.0 once had been linked against. Now that I have 
added libXext to the fox-gate framework (encouraged by/derived from Moinak's 
work) the default unpatched version at /usr/X11/lib/libXext.so.0.0.0 would be 
found first, attempted to use, and then the default error handling mechanism of 
exit()'ing would be gone, printing that nice message to stderr:

ld.so.1: gnome-session: fatal: relocation error: file 
/usr/lib/libgdk-x11-2.0.so.0: symbol XineramaGetState: referenced symbol not 
found

It is naturally a question of a few minutes to either add such a symbol to 
/FOX/MERCURIAL_20070830thu/XXX__fox-gate/XW_NV/open-src/lib/libXext/libXext.patch
 and change the Makefile to alawys apply that patch (and let that function do 
nothing, but make the linker's symbol table happy). Or to add such a symbol to 
an almost empty fake-lib (and LD_PRELOAD it, or link against that).

But those are only hacks/workarounds.
Are there plans to open up Sun's version of libXext, or does it even exist for 
download already, somewhere? One could then go and make Xorg's new libXext 
backward compatible to Sun-provided X-clients in a properly engineered manner. 
Don't know.

References:

Even SGI listed XineramaGetState(3X11) as 
"This API call is deprecated by the new call,
          XineramaActive(3X11). Only run-time backward compatibility
          is provided. For compilation, use the API proposed by Xorg."
Years ago!
(Then I don't quite understand why state of the art JDS stuff is still 
depending on it, on the latest versions of SX[C-D]R ?)

http://docs.sgi.com/library/tpl/cgi-bin/getdoc.cgi?coll=0650&db=man&fname=/usr/share/catman/p_man/cat3/Xext/XineramaGetState.z
http://blogs.sun.com/alanc/date/20050602
http://www.google.com/search?hl=en&q=%22XineramaGetState%3A%22&btnG=Search

--
%martin
 
 
This message posted from opensolaris.org

Reply via email to