What is Support Level Supplement (SLS) OSS711B, the OpenServer 6.0.0 Maintenance Pack 4 Supplement? KEYWORDS: sls oss oss711 oss711a oss711b 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) OSS711B, the OpenServer 6 Maintenance Pack 4 Supplement? SOLUTION: The following fix was first provided in OSS711A and is also provided in OSS711B: 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 Fixes provided in OSS711B: 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 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 OSS711B follow these steps: 1. Login as root 2. Create an empty directory, such as /tmp/oss711b, to which the patch will be downloaded. 3. Download the OSS711B patch tar file OSS711B.VOLS.tar to the directory created in step 2. Unwind the tar file in that directory tar -xf OSS711B_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/oss711b" (or the directory where you unwound the OSS711B patch file OSS711B.VOLS.tar in step 3) and choose "OK." 9. When prompted to select software to install, make sure that the "OSS711B" entry is highlighted. Choose "Install". 10. Installation of Escalation Supplement OSS711B is now complete. To exit the Software Manager, select "Exit" from the "Host" menu. 11. Once the installation has completed, you can remove or archive the OSS711B patch and the containing directory created in steps 2 and 3. 12. 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 "OSS711B" entry. 5. Pull down the "Software" menu and select "Remove Software". 6. Once the removal finishes, quit the Software Manager. 7. You will need to reboot your system for all changes to take effect.