5 Known Problems and Workarounds
- 1 -
1. Introduction
Note: Packaged with these release notes is a separate sheet
that contains the Software License Agreement. This
software is provided to you solely under the terms
and conditions of the Software License Agreement.
Please take a few moments to review the Agreement.
This document contains the following chapters:
1. Introduction
2. Installation Information
3. Changes and Additions
4. Bug Fixes
5. Known Problems and Workarounds
1.1 Release_Identification_Information
Following is the release identification information for the
IRIX IM Development Environment:
Software Option Product IRIX IM Development
Environment
Version 1.2.3
System Software Requirements IRIX 5.0 or later
1.2 Online_Release_Notes
After you install the online documentation for a product
(the relnotes subsystem), you can view the release notes on
your screen.
If you have a graphics system, select ``Release Notes'' from
the Tools submenu of the Toolchest. This displays the
grelnotes(1) graphical browser for the online release notes.
Refer to the grelnotes(1) man page for information on
options to this command.
If you do not have a graphics system, you can use the
relnotes command. Refer to the relnotes(1) man page for
accessing the online release notes.
- 2 -
1.3 Product_Support
Silicon Graphics, Inc., provides a comprehensive product
support maintenance program for its products.
If you are in North America and would like support for your
Silicon Graphics-supported products, contact the Technical
Assistance Center at
1-800-800-4SGI.
If you are outside North America, contact the Silicon
Graphics subsidiary or authorized distributor in your
country.
- 1 -
2. Installation_Information
This chapter lists supplemental information to the IRIS
Software Installation Guide. The information listed here is
product-specific; use it with the Installation Guide to
install this product.
2.1 IRIX_IM_Development_Environment_Subsystems
The motif_dev includes these subsystems:
motif_dev.man.dev Preformatted reference manual
pages. This subsystem is
intended to be installed on
systems that do not have the
nroff text formatting program.
There is no reason to install
both this and
motif_dev.man.devmansrc.
motif_dev.man.devmansrc Source for the reference
manual pages. This subsystem
is intended to be installed on
systems that do have the nroff
text formatting program. This
subsystem takes less disk
space, displays better looking
manual pages (especially the
tables), and displays them
faster than the preformatted
manual pages. There is no
reason to install both this
and motif_dev.man.dev.
motif_dev.man.relnotes Motif developer release notes.
motif_dev.sw.Mrm-debug This subsystem contains
libMrm_d.a, the debug version
of libMrm.
motif_dev.sw.Uil-debug This subsystem contains
libUil_d.a, the debug version
of libUil.
motif_dev.sw.Xm-debug This subsystem contains
libXm_d.a, the debug version
of libXm. If you link your
software with the debug
library while you are in the
process of developing it, then
stack traces will be more
- 2 -
meaningful to you. This may
be helpful in understanding
bugs in your own code, even
without access to the library
source.
If you have access to
OSF/Motif library source, the
debug library may be even more
helpful to you (even though
the line numbers will not
match exactly).
motif_dev.sw.dev This subsystem contains normal
libraries and header files.
motif_dev.sw.demo This subsystem contains
demonstration programs as
supplied by OSF.
motif_dev.sw.demoSGI This subsystem contains
demonstration programs, as
supplied by OSF, that have
been modified to show how to
use Xt and Motif with non-
standard visuals. It also
includes demonstration
programs for new widgets
supplied by Silicon Graphics.
2.2 IRIX IM Development Environment Subsystem Disk Space
Requirements
This section lists the subsystems (and their sizes) of the
IRIX IM Development Environment.
If you are installing this software for the first time, the
subsystems marked ``default'' are the ones that are
installed if you use the ``go'' menu item. To install a
different set of subsystems, use the ``install,''
``remove,'' ``keep,'' and ``step'' commands in inst to
customize the list of subsystems to be installed, then
select the ``go'' menu item.
Note: The listed subsystem sizes are approximate. Refer to
the IRIS Software Installation Guide for information
on finding exact sizes.
Subsystem Name Subsystem Size
(512-byte blocks)
- 3 -
motif_dev.man.dev (default) 4865
motif_dev.man.devmansrc 4082
motif_dev.man.relnotes (default) 31
motif_dev.sw.Mrm-debug 8650
motif_dev.sw.Uil-debug 8505
motif_dev.sw.Xm-debug 48539
motif_dev.sw.demo 6089
motif_dev.sw.dev (default) 13992
motif_dev.sw.demoSGI 1647
2.3 Installation_Method
This section lists the installation method for the motif_dev
subsystems. Refer to the IRIS Software Installation Guide
for complete installation instructions.
Subsystem Name Method of Installation
motif_dev.man.dev IRIX or Miniroot
motif_dev.man.devmansrc IRIX or Miniroot
motif_dev.man.relnotes IRIX or Miniroot
motif_dev.sw.Mrm-debug IRIX or Miniroot
motif_dev.sw.Uil-debug IRIX or Miniroot
motif_dev.sw.Xm-debug IRIX or Miniroot
motif_dev.sw.demo IRIX or Miniroot
motif_dev.sw.sgiDemo IRIX or Miniroot
motif_dev.sw.dev IRIX or Miniroot
2.4 Prerequisites
To use the 1.2.3 release of the IRIX IM Development
Environment, your workstation must:
o Be running IRIX release IRIX 5.0 or later.
o Have motif_eoe.sw.eoe (which contains the run-time
shared libraries) installed.
- 4 -
o Have motif_eoe.sw.uil (which contains the uil compiler)
installed for uil-based development.
2.5 Compatibility
o IRIX IM in IRIX 4.0.5 was SGI's port of OSF/Motif
1.1.4. IRIX IM in IRIX 5.2 is based on OSF/Motif
1.2.3. It also has up to date bug fixes and some SGI
extensions.
o A static shared library, binary identical to that
provided with IRIX 4.0.5, is included with the
motif_eoe software. In this release, you cannot link
for that version of the shared library (except by using
the available IRIX 4 Compatibility Build ENvironment).
Motif binary applications that were linked for that
version run unchanged. Such an application gets
neither the bug fixes nor the new features that are
provided with the new library.
o Applications must be linked with the libraries from
this release to get the new features and bug fixes.
o Programs built with this software are intended to
execute against an X11R5 server, such as one running
IRIX 5.0. Programs built with this software are
believed to also execute properly against an X11R4
server, such as those running IRIX 4.0.x releases, but
that capability has not been well tested, and is
therefore not guaranteed.
o Due to changes in the .uid file format as of IRIX 5.0,
you cannot use the uil that comes with this software to
build .uid files to use on IRIX 4.0 or earlier
releases.
o Due to changes in executable file format as of IRIX
5.0, you cannot use this software to build programs to
execute on IRIX 4.0 or earlier releases.
o For the most part, Motif programs and Imakefiles or
Makefiles should work unchanged in this release. That
is, bringing a program up to this level should be a
simple recompile. Exceptions:
- The compilers are stricter about type checking.
Some header files have had types changed.
Programs that used approved typedef'd symbols
should have no problem. Programs that declared
variables with basic C data types instead of using
the X11 typedef's might need to be changed.
- 5 -
- The default option menu label is now optionLabel.
It was null in previous releases. This means that
now the (probably unwanted) string optionLabel is
visible, and unless you explicitly set that
string, it takes up more space than before.
2.6 Configuration_Files
The imake configuration files that are installed in
/usr/lib/X11/config are changed for this release.
- 1 -
3. Changes_and_Additions
o See the 1.2.3 IRIX IM Release Notes, Execution-Only
Environment for functional changes.
o Security note: as in previous IRIX IM releases, the
Motif demo programs are shipped writable by everyone.
If this is a security problem for you, set the access
to whatever you like after you install the programs.
o This release is derived from OSF/Motif 1.2.3, and has
those features.
o This release is based on X11R5, and has those features.
o Geometry management has been improved.
o There are new functions for focus management, list
management, scrolled window control, and baseline
alignment.
o Some of the widgets have new functionality, such as
titled frame widget or the Template Dialog Box
capability of the XmMessgeBox.
o Some of the demonstration programs from the last
release, such as WidgetView, are no longer provided.
There are some new demo programs.
Note: The old directories are not removed if you made
any files in them (such as Makefile).
o mmkmf has proven to be a useful script. As a result,
it has now been put in /usr/bin/X11/mmkmf.
In the last release, mmkmf was a trial script, provided
as /usr/src/X11/motif/mmkmf. For this release, that is
now a symbolic link to the real mmkmf. That link will
be removed in the next release.
o /usr/include/{Xm,Mrm,uil} are now real directories, and
/usr/include/X11/{Xm,Mrm,uil} are symbolic links to
them. In the last release, the situation was reversed.
This change should have no practical effect. The
symbolic links are provided in this release only to
preserve compatibility. They will be removed in a
future release.
The new directory structure matches the standard
specified way of including Motif header files:
- 2 -
#include
It would be prudent to change any code that uses the
(now obsolete)
#include
because the symbolic links will be removed in a future
release.
o After installing this release, you need to do a new
makedepend. Otherwise, your dependencies might refer
to headers that are no longer there (but used to be
included by other X or Motif header files).
o Some standard system header files are no longer
included by X/Motif, so you might have to add some
#include files to your own application (if you needed
the header, too).
o You no longer need -lsun on your ld line.
o In the previous release, there were links from X11 to
the Xm header files AtomMgr.h, Protocols.h,
ProtocolsP.h, and MwmUtil.h. This was for backwards
compatibility with the OSF/Motif 1.0 release, (although
Silicon Graphics did not release a product based on
that version). These links are no longer created. The
files should be included as instead of
.
o The following header files were in Release 1.1 of
Motif, but are now obsolete in Release 1.2:
ExtObject.h, Traversal.h, VaSimple.h, VendorE.h,
VendorEP.h.
o A new public header file, XmAll.h, has been added to
Motif. This file consists of all the documented header
files.
o This release builds cleanly (without errors or
warnings) with ANSI C, if you use the flag -woff 182.
That flag suppresses warnings caused by Xt header
files. The warnings are valid, but indicate no
malfunction on a Silicon Graphics system.
o All references to caddr_t have been changed to
XtPointer. This affects all callback routines and
other routines that make reference to caddr_t.
- 3 -
o Many of the changes to Motif for Revision 1.2 were made
to enable the development of internationalized
applications and are based on X11 Release 5
specifications. In particular OSF/Motif
internationalization capabilities rely on the fact that
the X and C libraries support the ``locale'' concept
from ANSI-C or POSIX standards. To run Motif 1.2, you
must have X11R5 installed including all the
internationalization features.
o An XmDisplay object has been added to support per-
display data and resources. An XmScreen object has
been added to support per-screen data and resources.
o Tear-off behavior is enabled by setting the
XmNtearOffModel resource to XmTEAR_OFF_ENABLED (the
default is XmTEAR_OFF_DISABLED).
There is no resource converter preregistered for
XmNtearOffModel. To allow tear-off functionality to be
enabled through the resource database, an application
must register its own resource converter for the
XmNtearOffModel resource using the
XmRepTypeInstallTearOffModelConverter function.
The converter is not automatically installed because
many applications use map or cascading callbacks to
dynamically set the sensitivity of items within their
menus. However, if a TearOff Menu is mapped, the
sensitivity of its menu items must be changed
immediately to reflect changes in other application
states. Existing applications are unlikely to change
menu item sensitivity in this manner, so allowing their
menus to be torn off could allow operations to be
enabled at unexpected times. If you activate one of
these menu items, it might crash the application or
cause corruption of persistent data.
A torn-off menu is created in the same visual as the
menu it was torn from. If the original menu was in the
pop-up planes, the torn-off menu is there too. This
means that something that is not really transient is
now in the pop-up planes. It will be subject to all of
the usual problems that non-transient windows in the
pop-up planes face: limited colormap, colormap
flashing, and damage from things that write to the
pop-ups without benefit of a window.
Note that the only bad effects are cosmetic. The
available alternatives include:
- 4 -
- Understand that this is the situation. In
practice, it might not cause a real problem for
you.
- Don't enable tear-off menus if your menus are in
the pop-up planes.
- If your system has overlay planes, put your menus
there instead.
- If your system does not have overlay planes, put
your menus in the normal planes and accept any
redrawing caused by bringing up a menu.
- 1 -
4. Bug_Fixes
Hundreds of bugs have been fixed in the product since the
last release, including some infamous core dumps and memory
leaks. According to OSF, they have fixed the following
numbers of bugs:
o Motif 1.2: over 600 bugs
o Motif 1.21: over 200 bugs
o Motif 1.2.2 (IRIX 5.1) over 250 bugs
o Motif 1.2.3 (IRIX 5.2) 291 closed, 132 cancelled
SGI has also fixed many other bugs, including:
o We have applied most available OSF post-1.2.3 patches:
Destroy-crashes This is a very important patch that
prevents random core dumps in the Drag and Drop
code.
Scrollbar-get-values XmScrollBarGetValues on some
scrollbars would not return data to the "value"
field.
Text-VC-Callback The valueChanged callback wasn't
getting called as a result of XmTextSetString.
Missing-Images The builtin image names "vertical" and
"horizontal" were accidentally dropped from the
1.2.3 release. This patch restores them.
Label-align This is a geometry bug.
o We also have fixed some other 1.2.2 -> 1.2.3
regressions.
o We have fixed many internationalization bugs.
- 1 -
5. Known_Problems_and_Workarounds
o Be sure that you link libXm before libXt. Failure to
do so is a programmer error that will result in a
mysterious core dump. The reason for this is because
libXm and libXt both have a VendorShell widget. It is
important that the one from libXm is the first one the
loader encounters.
o Certain performance problems are more important in this
release. Avoid unnecessary widget management-managing
widgets has gotten far more expensive in this release.
- unmap and map where possible, rather than using
manage and unmanage.
- If you have a large array of widgets, manage them
all at one time, rather than managing each one as
you create it.
o It is far more efficient (both in terms of memory use
and speed) to use setvalues to set up a large scrolled
list than to use XmListAddItems with the same array of
list items.
o Of the two drag-and-drop protocols in use
(preregistered and dynamic), Silicon Graphics strongly
suggests that you stick to the dynamic protocol:
- Only the dynamic protocol is being standardized at
the X Consortium ICCCM level.
- The preregistered protocol has known logical
problems, connected with the source needing to
draw into the destination's window. If that
window is a different visual, it isn't always
handled correctly.
- Because of the need to keep a drop site database
up to date, some performance problems are caused
by using the preregistered protocol.
o There are some known demo program shortcomings:
helloint Trying to use Japanese & Hebrew
fonts gives warnings
motifburger Order dialog geometry management
not set right.
- 2 -
view Core dumps trying "C" locale.
xmtravel Bottom of some text fields is
clipped.
- 1 -
6. Documentation_Errors
o None are known.