Mainpage
Searchform
History
Versions
Categories
Contents
Deutsch
How is an OSF/Motif programme succesfully translated under Linux
1.1.62,
XFree86-3.1 and Metrolink Motif 1.2.4?
1.) The libraries in /usr/X11R6/lib (which are linked by
default)
are unsuitable. This is not terribly surprising, since Motif 1.2
is `designed' for X1135. Certainly X11R6 is totally compatible, but
the experience
has already showed, that the devil stacks here in detail
and constructions like `Motif 1.2 + X11R6' (first time) do not
work.
2.) One links to -L/usr/X11R5/lib, so the programme runs
at first, but the
following bug has become known: one unmanages a XmBulletinBoard-
Dialog (or subclass), at which more than one popup-child hangs
(same whether
popped-up or popped-down), so the programme crashes with the message
Error: Object "(null)" does not have windowed ancestor
(sometimes
with core-dump too).
3.) According to S.u.S.E. support, Metrolink promises its Motif's
function capability
only with XFree86-2.1.1. In fact, the
X11R5 libraries
of XFree86-2.1.1 and XFree86-3.1 are different!
4.) The XFree86-2.1.1 libraries are available on the 11/94-CD in
/cdrom/
slackware-2.1.0/contrib/XFree86-2.1.1/x3/xf_lib.tgz.
However, it is to be noticed, that this packet cannot be installed as
usual with pkgtool
, because otherwise, the already existent X11R6
libraries of XFree86-3.1 are overwritten. At best, one
installs
the XFree86-2.1.1 libraries in a separate directory (name
it DIR). The programme can be linked now by
gcc -static ... -lXm -L(DIR) -lXt -lX11 -o ...
.
5.) It will be more problematic, when the application should be
dynamically linked
, because the filenames for the `new' X11R5 sharable objects are
identical to these for the old ones (that is `lib{X11 Xt}.so.3').
Since
many X programmes (DNDDemo cutpaste dogs fileview helloint hellomotif
motifanim motifbur motifgif motifshell mwm periodic pict pixmap textedit
uil uilsymdump xbmbrowser xfishtank xgrab xgrabsc xmapdef xmbind xmdialogs
xmeditor xmfonts xmforc xmform xmgetres xmlist xmmap xmmore xmpiano
xmprotocol xmter xmtravel ...) want to see the `new'
X11R5 libraries
,
one cannot easily replace them by the old ones.
On the other hand,
the own Motif application works, but reliably only with the old
libraries.
The only possible solution would be, to bend the `LD_LIBRARY_PATH' on
the old libs inmediately before the programme start
and afterwards
to unset again. This is of course everything but elegant.
For security the programme can first test in its `main ()' function
that `LD_LIBRARY_PATH' is set and actually the
old library was loaded.
6.) Whether statically or dynamically linked, it still appears
another problem
with the old X11R5 libraries: The files
`/usr/X386/lib/X11/nls/{nls.dir nls.alias ...}'
are not available and readable, so the programme crashes with a
segment
violation. According to Motif-FAQ this is a bug in `libX11'. These
files
are located as well in `/cdrom/slackware-2.1.0/contrib/XFree86-2.1.1/
x3/xf_lib.tgz' and must be correspondingly installed. At best,
the programme checks again, whether these files are available
(alternatively
$XNLSPATH is valid too) and aborts if necessary with a corresponding
message.
Keywords: MOTIF, XFREE, X11, HOWTO
Feedback welcome: Send Mail to mb@suse.de (Please give the following subject: SDB-mb_12
)
Mainpage
Searchform
History
Versions
Categories
Contents
Deutsch