Patch 200801223-1 - Rational Apex Embedded (LynxOS) 4.0 for Sun Solaris->PowerPC ----------------------------------------------------------- To install this patch, download these 3 files and run the install script: install_sol_200801223_1 sol.patch.200801223-1.inventory sol.patch.200801223-1.tar.Z Description REQUIRED PATCH SERIES IDs: Starting with Apex 4.0.0, most Native and Embedded patches have a SeriesID associated with them. Specifying a SeriesID as a prerequisite for installation as opposed to a PatchID prevents prerequisites from becoming obsolete as new patches are created. SeriesIDs are text strings -- eg runtimes, views, etc -- and are listed next to the PatchIDs at ftp://ftp.rational.com/patch_info/index.html Before installing this patch, you must install a patch from each of the following product-series: Apex Native: series sun4_solaris2 [patchID 20010710 or later]. This product: series runtimes [patchID 20010709 or later]. ---------------------------------------------------------- It is suggested that all users install this patch. ---------------------------------------------------------- This patch fixes the following: Defect RATLC00151031: The Applied Micro Circuits Corporation (AMCC) 440EP variant of the PowerPC processor has an instruction set similar to the PowerPC 603 supported by Rational Ada Embedded Developer. However, it does not implement recording floating point instructions such as fadd. (note the '.' in the mnemonic, which is what distinguishes this from the non-recording fadd). The Apex PowerPC code generator makes extensive use of recording operations to simplify floating point code. This patch contains Rational Ada Developer 4.0.0 for LynxOS PowerPC code generators that recognize the compilation switch: CODER_OPTIONS: -INFO SUPPRESS_RECORDING_FP_INSTRUCTIONS:TRUE When this switch is included in the Policy/Switches file of a view the code generator will avoid the use of recording floating point instructions in object files created in that view. These objects can be linked (along with companion 440EP compatible runtimes and predefined views) into applications that can be executed on a PowerPC 440EP computer running LynxOS. Such an application will also be compatible with the PowerPC 603 and equivalent processors, though it is somewhat less efficient than unrestricted code. The patch also includes a 440EP-specific C++ compiler key. ---------------------------------------------------------- The following were fixed in earlier patches. The fixes are included in this patch as well. Defect PEBU00007427: In the Rational Apex 4.0 Embedded Solaris to PowerPC for LynxOS product, for loops may fail to terminate in certain situations. Bcopy, an subprogram internal to the runtime, does not preserve the value of the CTR register, which is used in optimized for loops. Calls to Bcopy are generated by the compiler to copy large objects, e.g. for record or array assignment. If one of these calls is made in the body of an optimized for loop, it may zero CTR, which prevents the loop from terminating. This patch provides a new Power PC code generator that recognizes the volatility of CTR, avoiding its use to implement loops containing subprogram calls that may modify it. Since the libraries in the released product were compiled with the original code generator, a version of Bcopy that preserves the value of CTR is also included. Note, to obtain the complete fix for this defect you must also install a runtimes series patch numbered 20010709 or later. Defect PEBU00007554: The expect tool in the LynxOS 3.1.0a CDK contains a hard-coded pathname for the TCL libraries that refers to the 3.1.0 CDK. The impact is that debugging does not work unless the 3.1.0 CDK is installed in addition to the 3.1.0a CDK that Apex requires. This patch works around the problem by setting an environment variable before calling expect. Defect PEBU00007802: The debugger was having problems navigating callstacks in some instances. In particular after selecting a task, 'cd' did not work. This patch fixes this problem. Defect PEBU00007803: The debugger wasn't giving thread_id information in 'lt all'. There must have been a regression. This is now fixed. ---------------------------------------------------------- It is suggested that all users install this patch.