Patch 200406251-1 - Rational Apex Embedded (Rational Exec) 4.0 for Sun Solaris->PowerPC ----------------------------------------------------------- To install this patch, download these 3 files and run the install script: install_sol_200406251_1 sol.patch.200406251-1.inventory sol.patch.200406251-1.tar.Z Description IMPORTANT NOTE: This patch includes a new code generator (apex_ada_cg_phase). This requires that all non-API views containing source code (280 views if the full product was installed) be cleaned and recoded as part of installing this patch. In addition, the Build.scripts present in krn_conf.ss, net_conf.ss, no_krn_conf.ss, and tdm_conf.ss views will be run, generating new kernels, etc. A script (script.PEBU00007427) has been included in this patch to do this. The script will run only once, even if you uninstall and re-install this patch, or install a later patch which also fixes this defect). 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 the following product-series: Apex Native: series sun4_solaris2 [patchID 20010710 or later]. ---------------------------------------------------------- It is suggested that all users install this patch. ---------------------------------------------------------- This patch fixes the following: Defect PEBU00009260: Debugger cannot handle executables built in subdirectories of Clearcase Subsystems. ---------------------------------------------------------- The following were fixed in earlier patches. The fixes are included in this patch as well. Defect PEBU00007340: Tools > Convert (or apex_convert) leaves a blank line at the end of v_tdm_main.s3. Defect PEBU00007427: In the Rational Apex 4.0 Embedded Solaris to PowerPC products, 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. Defect PEBU00007487: The format for reading and writing spr's to tdm has changed. DB_iface needed to take this change into account when writing the iabr and dabr. This fix also relaxes restrictions on what ppc variants will work. If tdm supports reading and writing the spr's then the hardware breakpoint facilties should work. Defect PEBU00007537: This patch fixes the agilent probe to work with TestMate. Defect PEBU00007574: The PowerPC instruction simulator supported by the Rational Apex Embedded to PowerPC family does not implement the SUBFZE instruction correctly. This instruction is encountered rarely in Apex code; the only known failure is in the _d_sub function of the GOFAST software floating point package used to run Apex applications on PowerPC systems without hardware floating point support. Even this function only uses SUBFZE for certain arguments, so this problem will almost never be seen even when running software floating point applications with the instruction simulator. This patch provides an instruction simulator that correctly implements the SUBFZE instruction. Defect PEBU00007915: The Apex Patching Linker was getting an internal error during the object location phase. Defect PEBU00007988: The execution and debug tools now fill an input buffer declared in an executable in reasonable sized blocks. Previously, the entire contents were filled in a single operation, which failed for large sizes on some versions of the Agilent E5900E probe. Also, better diagnostics are now provided for input buffer operations. This affects usage with TestMate's trap-based coverage. Defect PEBU00007993: The embedded linker occassionally emits a symbol with in incorrect offset. This particular problem is caused by the insertion of alignment padding in a TEXT/DATA/CODE section. Defect PEBU00008159: The E5900 db_iface executables (for the probe) were not shipped with the product. Defect PEBU00008183: Absolute addressing was not handled correctly by the IL optimizer (OPTIM). Defect PEBU00008189: The debugger now displays the correct heap usage information for the 'lt use' command. Defect PEBU00008609: The compiler generated a function table to inline a procedure consisting solely of a case statement that selected between a small set of procedures to call. This corrupted the PowerPC ctr register that was being used as a loop counter. The compiler now accounts for the fact that subprograms called through a pointer alter the ctr register. (Defect 8609) Enhancement #1: This patch adds support for the PowerPC AltiVec. It includes changes to: . System.Machine_Code to support the AltiVec instructions . the compiler and code generator to generate AltiVec instructions . the debugger to disassemble AltiVec instructions . TDM to support displaying the AltiVec register set . the documentation to describe how to use the AltiVec unit It also includes an example BSP for the Motorola MVME5100 board which contains an MPC7400 (which is an AltiVec-enhanced processor). Note, to fully install this new feature, you must also install a patch from the 'views' series numbered 200106261-1 or higher. Enhancement #2: Supply target interface executables (a.run_e5900 and a.db_iface_e5900) for E5900 probe. In order to use these executables, you must also install a patch from the Share series (200112101-0 or later) that contains Target Control Dialog support for the E5900 probe. ---------------------------------------------------------- It is suggested that all users install this patch.