SuSE Support Database
Title: Compiling Motif 1.2 programmes under XFree3.1

Mainpage
Searchform
History
Versions
Categories
Contents
Deutsch
Compiling Motif 1.2 programmes under XFree3.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 X11R5. Certainly X11R6 is totally compatible, but the
experience has already showed that constructions like `Motif 1.2 +
X11R6' (first time) do not work.
-
One links by
-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 hang
(same whether popped-up or popped-down) and the programme crashes
with the
message `Error: Object "(null)" does not have windowed
ancestor
'
(sometimes with core-dump too).
-
According to S.u.S.E. support, Metrolink promises its Motif's function
capability only with XFree86-2.1.1. Actually the
X11R5 libraries of
XFree86-2.1.1 and XFree86-3.1 are different!
-
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 now linked by
gcc -static ... -lXm -LDIR -lXt -lX11 -o ...
.
It will be more problematic when the application should be dynamically
linked
, because the filenames for the `new' X11R5 sharable objects are
identical to them for the old ones (that is `lib{X11,Xt}.so.3'). Since
many
X programmes {\tt (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 use 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.
It would be a particular solution 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
whether `LD_LIBRARY_PATH' is set and actually the old
library was loaded.
Whether statically or dynamically linked, it still appears another problem
with the old X11R5 libraries: The files
{\tt `/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 `{\tt /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 also valid) and aborts if necessary delivering the
corresponding message.

Keywords: MOTIF, OSF
SDB_CREATE:

Mainpage
Searchform
History
Versions
Categories
Contents
Deutsch
SDB-kfr_2, Copyright SuSE GmbH, Nuremberg, Germany
Impressum - Last generated: 24. Feb 1999 14:54:26
by maddin
with sdb_gen 1.00.0