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.4 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.4 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.3 is based on OSF/Motif 1.2.4. 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.4 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.4, 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 - #includeIt 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 o Motif 1.2.4 (IRIX 5.3 and IRIX 6.0) 240 closed, 91 cancelled Note: this applies to everything excedpt 32- bit libXm, which remains at the 1.2.3 level. - 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.