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