Patch 200701261-1 - Rational Apex Embedded (VxWorks/Tornado) 4.2 for Sun Solaris->Intel i386/Pentium ----------------------------------------------------------- To install this patch, download these 3 files and run the install script: install_sol_200701261_1 sol.patch.200701261-1.inventory sol.patch.200701261-1.tar.Z Description ---------------------------------------------------------- It is suggested that all users install this patch. ---------------------------------------------------------- This patch fixes the following: Defect RATLC00147896: The C/C++ front end and code generator (tmcfe and cg) fixing RATLC00389186 are incompatible with the release debugger and disassembler. Attempts to use the release debugger or dissasembler on programs created with the new tmcfe and cg produce the error message: version mismatch (expecting version 4, found version 5) This patch provides debugger and disassembler executables compatible with the fix for RATLC00389186. Defect RATLC00147898: In Apex 4.2.0 embedded products targeting Intel Pentium processors, subprograms may restore the stack frame base pointer (register EBP) from the stack frame after it has been deallocated. If such a subprogram is interrupted after the stack frame has been deallocated but before EBP is restored, the restored base pointer can have an arbitrary value. This causes rare, unpredictable, and difficult to reproduce bugs. This patch addresses this problem in the C/C++ compiler by deallocating stack frames such that the saved EBP remains at the top of the stack, where it is popped into the EBP register. ---------------------------------------------------------- The following were fixed in earlier patches. The fixes are included in this patch as well. Defect RATLC00142448: In Apex 4.2.0 embedded products targeting Intel Pentium processors, subprograms may restore the stack frame base pointer (register EBP) from the stack frame after it has been deallocated. If such a subprogram is interrupted after the stack frame has been deallocated but before EBP is restored, the restored base pointer can have an arbitrary value. This causes rare, unpredictable, and difficult to reproduce bugs. This problem only occurs in Ada code compiled with the following switches in the view Policy/Switches file: OPTIMIZATION_OBJECTIVE: TIME CODER_OPTIONS: -INFO ARCHITECTURE:IA_586 This patch addresses the problem by deallocating stack frames such that the saved EBP remains at the top of the stack, where it is popped into the EBP register. Defect RATLC00389186: Large const arrays cause an internal error in Rational Ada Embedded Developer for VxWorks Intel Architecture. This problem was fixed in the Native C++ compiler front end; this patch includes a new C++ cross compiler for VxWorks Intel Architecture. Once the front end was fixed it was found that the code generator took excessively long to process large const arrays. A new sort algorithm was incorporated into the code generator to speed this up. ---------------------------------------------------------- It is suggested that all users install this patch.