What is Support Level Supplement (SLS) OSS711C, the OpenServer 6.0.0 Maintenance Pack 4 Supplement? KEYWORDS: sls oss oss711 oss711a oss711b oss711c 600 6.0.0 openserver osr6 maintenance pack 4 patch supplement cumulative fixes RELEASE: SCO OpenServer Release 6.0.0 with Maintenance Pack 4 PROBLEM: What problems are fixed by Support Level Supplement (SLS) OSS711C, the OpenServer 6 Maintenance Pack 4 Supplement? SOLUTION: The following fix was first provided in OSS711A and is also provided in OSS711C: 1. Failure to check a reference count when releasing an internet protocol control block (PCB) resulted in a kernel panic. This problem has been fixed. fz535347 The following fixes were first provided in OSS711B and were also provided in OSS711C: 2. Several igmp driver fixes: - system hang fixed by eliminating a recursive lock acquisition in igmp code. - kernel sometimes panics with a divide by zero error on receipts of an IGMP packet. fz535785, fz535787 3. Several code optimization bugs have been fixed. When optimizing with compilation options "-K pentium_pro -KPIC", a bug in instruction scheduling may result in the incorrect re-ordering of two dependent instructions that modify a function argument before its first use. This could happen if both instructions are ultimately hoisted above the "popl %ebx" instruction used to establish the global offset table pointer. This bug has been resolved. fz535654 Incorrect code may be generated when optimizing nested loops where: - there are multiple exits, such as end of loop, continue, or break, from an inner loop; and - indexed operands (addresses) are promoted to register(s), temporarily freeing register(s) if needed. The error occurred in instructions added at one of the loop exits to restore previous values in the "temp" register and has only occurred in one known open-source source file. This problem has been fixed. fz535658 4. A previous change to the libc/port/catopen.c source file for OpenServer 6 (fz532671) required a new C macro define to be added into nl_types.h. While probably only needed for UnixWare 7.1.x and OpenServer 6 libc.so.1 runtime compilation, this updated header file is being released to be consistent across the SVR5 products. fz535700 5. To further aid the porting of open source software, some common extended APIs have been added: void _flushlbf(void); size_t __fbufsiz(FILE *stream); size_t __fpending(FILE *stream); void __fpurge(FILE *stream); int __flbf(FILE *stream); int __freading(FILE *stream); int __fwriting(FILE *stream); int __freadable(FILE *stream); int __fwritable(FILE *stream); fz535604 6. The duplicate typedef declarations for "pointer" and "const_pointer" have been removed from the C++ header file /usr/include/CC/deque. fz535708 7. The macro definitions of offsetof() in /usr/include/stddef.h and /usr/include/sys/sysmacros.h are now an exact match. A previous warning diagnostic about the offsetof macro being redefined no longer occurs when both header files are include into a compilation unit. fz535716 8. Repairs made to the runtime linker (RTLD) in OpenServer 6.0.0 MP3 for issues encountered in the porting of OpenOffice 2.0.x (see OSR6 MP4 Release Notes - bug id 534211:1) caused the fini routines of an a.out to be executed twice. This is typically not a problem since sensitive code such as the destruction of global or static C++ objects is prevented from being executed more than once by both the native compilation system or the GNU compiler in the UW7.1.x OSTools package. The fini routines of applications built with a version of the GNU compiler(s) prior to version 2.95, however, would call abort() if executed a second time. Such is the situation with the Skunkware gzip-1.2.4 for UnixWare 7, published in early 1999. The SVR5 /usr/libc/libc.so.1 RTLD code has been fixed to avert any re-execution of an application's fini code. Applications built with an old version of GCC will continue to run on OpenServer 6.0.0. fz535712 9. C++ ICE: Covariant return types usage gets internal error C++ Internal Compiler Error (ICE) - "cgtr_expr(): unexpected ep->kind" has been fixed for the case of covariant virtual functions with fixed argument lists. fz223362 10. "ln -s source dst-dir" broken in MP4 An MP4 fix to the "ln" command to create symbolic links when the source file(s) do not exist failed to also consider the case when the target was a directory. The command has been fixed to create the symbolic link in the target directory to the non-existent source files as required by the POSIX standard. fz535721 11. A previous libc.so.1 fix for a potential deadlock in applications calling putenv() or setenv() failed to consider applications implementing their own malloc(), free(), et al functions. The fix now handles all such situations. fz535673 12. /usr/include/netinet/in6_f.h updated. Add additional defines referencing 16-bit and 32-bit equivalent of IPv6 address to allow build of open source modules. fz534541 Fixes provided in OSS711C: 13. A new boot parameter, CONSOLE_VIDEO, has been added to allow specification of the video adapter type in cases where the OS does not identify the video adapter type correctly. Allowed values of CONSOLE_VIDEO are "VGA", "EGA", "CGA", "CGA40", and "MONO." Values may be specified in either all upper or all lower case. If CONSOLE_VIDEO is not set, or if it is set to a value other than the ones listed here, then the system will attempt to identify the video adapter automatically. fz535871 14. A new boot parameter, PS2_KEYBOARD, has been added that allows specification of the presence or absence of a PS/2 or legacy keyboard controller. The value of PS2_KEYBOARD may be: YES to specify there is a PS/2 keyboard controller present NO to specify there is no PS/2 keyboard controller AUTO to specify that the OS should detect presence or absence of a PS/2 keyboard controller at runtime The PS2_KEYBOARD boot parameter, if present, takes precedence over the kernel tunable i8042_detection defined in /etc/conf/pack.d/ws/space.c. If PS2_KEYBOARD is not specified, then the value of i8042_detection determines the treatment of the PS/2 keyboard. The default value of i8042_detection is 1, which has the same behavior as PS2_KEYBOARD=AUTO. fz535870 15. The system displays the message "WARNING: Integral console keyboard not found" if no i8042 keyboard controller was found on the system, regardless of the system tuning. This message and the circumstances under which it is displayed have been modified as follows. If the kernel is tuned to always ignore the i8042 keyboard controller (e.g., PS2_KEYBOARD=NO), then no message about its absence will be displayed. If the kernel is tuned to assume the presence of an i8042 keyboard controller (e.g., PS2_KEYBOARD=YES or i8042_detection=0), and no i8042 controller is found, then a warning will be displayed. If the kernel is set to auto-detect the presence of the controller, then a notice will be displayed if none is found. fz535713 16. Fix a kernel panic caused by a NULL pointer dereference in clock handling code. fz535800 17. Fix statvfs so that it returns the file system pack name. fz535072 18. A system was seen to pause during reboot for about two minutes following display of the message "Automatic Boot Procedure." The problem was tracked to code in the reset sequence that writes to the legacy i8042 keyboard controller. The reset sequence has been modified to write to the legacy controller only if the system has determined that it is present. fz535869 19. Fix a syntax error in /usr/sbin/rndc-keyadm that is currently benign but will become evident when ksh93 is updated. fz535852 20. A bug in the IGMP Version 3 code caused the OS to sometimes fail to send IGMP V3 membership reports in a timely manner in response to incoming IGMP V3 membership queries. The lack of timely membership reports would then cause network routers to periodically drop the host from multicast groups, in turn causing the host to sometimes fail to receive multicast messages that it expected. This bug has been fixed. fz535823 21. IGMP statistics were not being updated correctly. The problem has been fixed. fz535877 22. The telnet daemon sometimes drops connections following a request to change the screen size. The problem has been fixed. fz535808 23. Starting in Maintenance Pack 3, messages in syslog contained two date stamps. The problem has been fixed. fz535131 24. Provide the library /usr/lib/librpcsvc.a for the SVR5 ABI. It was previously missing in OSR6. fz535873 This supplement can be installed on the following SCO OpenServer releases: SCO OpenServer Release 6.0.0 with Maintenance Pack 4 ---------------------------------------------------------- I. Software Notes and Recommendations 1. This package is produced by the SCO Escalations Research Group and is not intended for general distribution. It has been produced to address a particular problem and has not been tested in all system configurations. 2. If you have any questions concerning this supplement, please contact your SCO software supplier or your SCO Support Representative. ---------------------------------------------------------- II. Installation Instructions To install OSS711C follow these steps: 1. Login as root 2. Create an empty directory, such as /tmp/oss711c, to which the patch will be downloaded. 3. Download the OSS711C patch tar file OSS711C_VOLS.tar to the directory created in step 2. Unwind the tar file in that directory tar -xf OSS711C_VOLS.tar 4. Run the Software Manager with the command: scoadmin software or double-click on the Software Manager icon in the desktop. 5. Pull down the "Software" menu and select "Install New". 6. When prompted for the host from which to install, choose the local machine and then "Continue". 7. In the "Select Media" menu, pull down the "Media Device" menu. Select "Media Images", then choose "Continue". 8. When prompted for the "Image Directory", enter "/tmp/oss711c" (or the directory where you unwound the OSS711C patch file OSS711C_VOLS.tar in step 3) and choose "OK." 9. When prompted to select software to install, make sure that the "OSS711C" entry is highlighted. Choose "Install". 10. During installation, you may see verification errors reported on ./opt/K/SCO/Unix/6.0.0Ni/usr/lib/libc.so.1." These errors are fixed by installation of OSS711C, and can be ignored. Just select "Continue" at the Error window to complete the installation. 11. Once installation of Escalation Supplement OSS711C is complete, exit the Software Manager, by selecting "Exit" from the "Host" menu. 12. Once the installation has completed, you can remove or archive the OSS711C patch and the containing directory created in steps 2 and 3. 13. You will need to reboot your system for all changes to take effect. ---------------------------------------------------------- III. Removal Instructions Note: Patches must be rolled back in the reverse order in which they were installed on a per-component basis. 1. Log in as root. 2. Execute the command: scoadmin software or double-click on the Software Manager icon in the desktop. 3. Pull down the "View" menu and select "View Patches". 4. Highlight the "OSS711C" entry. 5. Pull down the "Software" menu and select "Remove Software". 6. During installation, you may see verification errors reported on ./opt/K/SCO/Unix/6.0.0Ni/usr/lib/libc.so.1." If this happens, select "Continue" at the Error window to complete removal of OSS711C. 7. Once the removal finishes, quit the Software Manager. 8. You will need to reboot your system for all changes to take effect.