Patch 200806191-1 - Apex 4.0.0b for Sun Solaris ----------------------------------------------------------- To install this patch, download these 3 files and run the install script: install_sol_200806191_1 sol.patch.200806191-1.inventory sol.patch.200806191-1.tar.Z Description NOTE: This is an Architecture series patch, for the sun4_solaris2 architecture. This patch supersedes all previous Architecture (series or not) patches, for this specific architecture. This Architecture series patch requires a Share series patch. This Architecture series patch is associated with an Ada series patch that should also be installed. This Architecture series patch is associated with a Cpp series patch that should also be installed. This patch, and the associated ada and cpp series patches, constitute a major update. All source code should be cleaned and recompiled. This patch contains changes to address the following defects: Defect RATLC00878588 Divide by zero fails to raise CONSTRAINT_ERROR in threaded views The runtime libraries have been updated. This was a regression in the required series patch. An Ada patch, containing ada views builts with these runtime libraries, will be necessary. Defect RATLC00878456 Collection Callouts don't work properly Collection callout tasking archives have been corrected. Defect RATLC00877901 storage pool deallocation error The runtime libraries have been modified to correct pool allocation and deallocation. Defect RATLC00387682 Compile:Show:Unused CONSTRAINT_ERROR (raised Apex has been modified to address this problem. The complete solution to this issue will only be available in later releases of Apex. Defect RATLC00386953 implementaion specific pragma Restrictions for RCI The Ada compiler was corrected. Defect RATLC00385161 Problem with counting V_semaphores that are signalled from interrupt handlers The rexec runtime libraries have been corrected. Defect RATLC00150268 Allow user to put pragma suppress_warning statements in pragma.1.ada (or something similar?). A general suppression mechanism will not be supplied. However, two warning messages have been removed from the compiler. has no address clause, is not volatile, aliased, imported, exported, or of a by-reference type; usage of 'Address may be problematic (AI95-000173) This message was originally inserted because the language specification indicates that the usage can lead to problems and the compiler is not required to make adjustments so that the program will work as intended. After years of experience, we determined that, to the best of our knowledge, our compilation technology never produced a violation. Further, customers found the warning onerous, so we removed it. There remains the possibility that an RCI customer would still benefit from the message, as we have no way of confirming that all target compilers have the same behavior, but we decided to trust that a target compiler would issue its own message in that circumstance. is passed by copy, but it was passed by reference in releases prior to Apex 4.2; this may cause incompatibilities This message is just a warning that one version of the compiler added an optimization that could potentially break programs that had been erroneously relying on aliasing behavior, i.e. referencing the parameter indirectly through the value passed. We found more than one of these in the product and they are very difficult to diagnose, though easy to fix. Unfortunately, the message is common because the handling of many small structures can be improved. Further, the warning continues to be emitted long after the transition has been made. As a result, the message ended up being ignored, except where the development process prohibited warnings. There is no simple, obvious, efficient workaround. The purpose would have been better served by a warning in the release note. To our knowledge, no customer has found such an aliasing incident through the good offices of the message, so it has been removed. Defect RATLC00144816 rci_group_compile does not get called during code The rci_group_compile is now invoked appropriately. Defect RATLC00144273 Request to change speed factor for Apex A scaled time feature has been added to the Apex threaded runtimes. This feature is available through the package Ada.Real_Time.Scaled_Time in the views of real_time_systems.ss. This patch has the associated compiler/library changes. This patch also contains the following previously patched changes: Defect PEBU00008710/9174 - Code generation error using 'max or 'min Corrects code generation error in the case where the target of the assignment was one of the inputs to the 'min or 'max operation. Defect PEBU00009111 Allow env var to override automatic prevention of keyword expansion in files assumed to be binary. The env var is APEX_NO_EXTENSION_CHECK_FOR_KRL Defect PEBU00009087 Correct extraneous accept attempts in accept_domain_changes This patch also makes available an option to expose base link information for pooled objects. Defect PEBU00008680 - &&& [COD] assertion error This patch increases the maximum number of external symbols allowed in the intermediate (IL) generated to produce a single object file. Previously, at most 2**16 - 1 external symbols were allowed; this has been increased to 2**31 - 1. Attempting to link very large programs would on occasion exceed this limit when the elaboration code for the link closure of the program was generated. For each compilation unit in the link closure of the main program, the elaboration code will typically generate references to several external symbols (e.g., the name of the elaboration routine, the name of the finalization routine, the name of the exception unwinding table and the names of the tags of tagged types declared in the unit). In order for the elaboration module to exceed the limit on the number of external references, the program must contain several thousand compilation units in its link closure. Since the intermediate (IL) files are only temporary files and are deleted once the object file (.o) is generated, it is not necessary to recompile existing code when this patch is installed. Relinking main programs which were previously too large is all that should be required. Defect PEBU00008578 Updated debugger to make the visit command work on split lines in files with Carriage-Return-Line Feed termination. Defect PEBU00008502 - when displaying variant record in debugger Display of a variant record, declared without a constraint, gives the message before anything is assigned to it. After assignment, the message is . The debugger was following one too many levels of indirection when it obtains the address of the record so that the contents of the record appear as the address. Defect PEBU00008440 - Complex discriminant records, debugger cannot display all fields The debugger's handling of derived record types was incomplete. Defect PEBU00008416 - process received signal "Segmentation fault" [11] in mutex lock Some variables, due to platform specific needs, are required to be bound to memory - as opposed to registers. These variables, when passed as parameters to subroutines, were being bound differently at the called site as compared to the calling site. Defect PEBU00008352 - Assertion_Error compiling a protected object with access parameters Correction to the compiler where an assertion error was raised on the detection that a type declared in another unit should already have been frozen. Defect PEBU00008406 - grep: 'visit' places cursor not placed on pattern found Tools:Grep returns a list of files containing the search pattern. There was an error where when visiting a file, the line containing the pattern the highlighting and cursor placement was incorrect. Defect PEBU00008379 - Apex editor crash resizing the window and searching for a string There was a location in the Motif algorithm where a field was checked for NULL, various other things then happen, and then Motif neglects to check whether that field was still non-NULL. This resulted in a seg fault and the editor crash. Now check for NULL the 2nd time and tries to determine an appropriate focus widget from there. Defect PEBU00008369/7786 - Internal error when compiling with optimization level 1 Error occurred due to an infinite recursion tearing apart aggregate literals. Algorithm has been changed to prevent the infinite recursion possibility. Defect PEBU00008364/7103 - Apex 4.0 Tools : Grep very slow Under Apex 4.0 when the grep operation was performed, Apex editors for files to be grepped were notified to save unsaved changes. This could result in a large number of messages and a slowdown. The process has been changed to save all changes before doing the grep, not just changes to files being grepped. This results in less messages. In an updated Grep dialog box the user can turn off this Save All feature on a per-job basis. It is possible to also disable it for all jobs by setting APEX_GREP_SAVEALL to "false" in his environment. The default is "true". It can be reenabled on a per-job basis through the dialog. Defect PEBU00008349 - Unexpected Diana: Mp_Types.Get_scalar_Info DN_ACCESS The middle pass was incorrectly dealing with a null access value used in a discriminant constraint. Defect PEBU00008346 - Unable to debug core files in native thread view Added threads core support. Defect PEBU00008326 - GUI crash running Apex 4.0.0C Corrected error in Motif code where it caused Apex to crash or created huge windows. Defect PEBU00008290 The compiler had ignored Storage_Check suppression when building routines which do not correspond to Ada source level subprograms. (e.g. elaboration routines for packages). Defect PEBU00008162 Constant address alignment problem Corrected an error in optimizing that was causing alignment information not to be recognized for an object bound to a device register via an address clause. Defect PEBU00008183 "[COD] assertion error" when optimizing with level 2 There was a problem with how the IL optimizer (OPTIM) handled absolute addressing. Defect PEBU00008182 "[RCE] Internal error" when optimization level 2 There was a problem involving boolean not that could lead to a Constraint_Error in RCE. Defect PEBU00008170 - Default alignment for objects On a target which does not support 64-bit discrete types, and which has no non-floating-point 64-bit load/store instructions, a record consisting of two 4-byte integer fields should be given 4-byte alignment. Defect PEBU00008128/7375 Apex ClearCase does not update CM attributes The directory server will now be informed of version control state changes to files (done via the apex GUI). The directory server will reset its cache when a redisplay is requested. Defect PEBU00008097 Add support for per-object alignment clause for misaligned objects Added support for per-object alignment clause for misaligned discrete or fixed point objects which are either imported or subject to an Address clause. For example, X : Integer for X'Address use (...); for X'Alignment use 1; Defect PEBU00008057 instantiation error with generic with private tagged and derived types With a generic package containing the declaration of a private extension, where the parent is a (tagged) private type declared in the same package, in some circumstances the compiler raised Constraint_Error when trying to code an instantiation of this package. Defect PEBU00008048 ASIS OE has problems displaying enumeration literals Literals cannot be asked for their representation any more, it is now necessary to go to the Defining Literal and ask there instead. Defect PEBU00008045 Unimplemented Feature: Discriminants of access-to-subprogram type Access-to-subprogram discriminants were previously only supported in the case where values of the access type were represented as simple code addresses, as opposed to full subprogram variables. Added support for the full subprogram variable representation case. Defect PEBU00008041/8043 incorrect permissions on some directories in .Rational View is now checked to see if it is writable (if not an error message is generated). Defect PEBU00008005 Motif bug prevents Apex from running on dual-head CDE machine Defect PEBU00007911 Middle pass error Defect PEBU00007829/8334 Generic does not Analyze/Code successfully Corrected error in the code that does target-dependent checking of alignment clauses. Defect PEBU00007743 Request for better task naming for LynxOS Compiler changes to facilitate better task naming. Defect PEBU00007694 Diana expand bug Corrected error in handling of Generic instantiated with an enumeration id as an actual for a formal function. Defect PEBU00007833/PEBU00007837 and PEBU00007971 Assertion error during analyze/code of generic instantiation Defect PEBU00007926 - Problems with pragma suppress (all_checks) pragma Suppress was being ignored for some fixed point operation. In addition the following enhancements have been made: Improvements have been made for the handling of the CONSERVE_DATA_NAMESPACE policy switch created in response to Defect PEBU00007600. To enable this feature, set the CONSERVE_DATA_NAMESPACE policy switch to "True" in source views. (The switch must be set in all views for the maximum effect.) This change affects Apex Embedded only. The Ada compiler now supports the Motorola 680x0 processors. This change affects Apex Embedded only. Defect PEBU00007795 error when coding complex variant record declaration Variant record declaration was triggering an error in the RCE phase. Defect PEBU00007911 An error was occurring in the middle pass when completing an unrooted subtype created for a derived subprogram. Defect PEBU00007770 - Loosing "controlled" objects Defect PEBU00007351/7507 CONSTRAINT_ERROR in generic_checking.chk_generic_param Improved debugger support for generics. The user can now navigate to the source of a replicated generic and set a breakpoint, and the breakpoint will be set on all instantiations. The user can navigate to a specific instantiation and set a breakpoint, then the break will be set only on that instance. The debugger is able able to set breakpoints on nested generics of any level. Improved debugger support for inlined code, including inlined generics. The user can now navigate to the source of an inlined subprogram and set a breakpoint, and the breakpoint will be set in all instances. The user can navigate to a specific instance and set a breakpoint, and the breakpoint will be set only ion that instance. The debugger handles the case of both explicitly and implicitly in-lined code. Improved the debugger display names of Ada tasks that have been called from C threads. Improved debugger handling of control_t. The debugger now handles the case of control_T being entered in a blank source window. Previously, this could cause a segmentation fault. Fix a problem where the debugger was unable to map source containing control characters to Diana. Defect PEBU00007863 Debugger gets segmentation fault when configuration is longer than 800 characters. The debugger now handles the case of long linker configuration files. Previously, files longer than 800 characters could cause a segmentation fault. Defect PEBU00007530 Debugger malfunction when changing the value of a variable The debugger now correctly handles assignments to 16-bit boolean variables. This affects assignments to booleans that have a size specifically set by a representation clause. Defect PEBU00006151/PEBU00006025 Debugger source code window size not saved You can now save window sizes for the debugger and have them come up correctly when you restart. Defect PEBU00005687 Activate / Deactive all breaks does not work. In the debugger, the "deactivate all" command didn't work first time when performed from the command line. Defect PEBU00007872 F'Denorm should be false for RH32 Target For the RH32 target the Ada95 compiler returned the incorrect value for F'Denorm. Defect PEBU00007863 Debugger segmentation fault on long Linker configuration file. If a Linker configuration was larger than 800 characters is was causing a segmentation fault or bus error from the debugger. Defect PEBU00007792 Compilation failure - [GSK] Exception A programming error was causing an optimization phase to process incorrect information, when processing bounds information. Defect PEBU00007787 Program_Error raised by compiler processing 'width The compiler was not handling the case where there was a derived type with a representation clause. Defect PEBU00007749 Problems aliasing a constant The compiler now emits a warning when generating code for Foo'Address, where Foo is a static constant for which no code was generated (so that Foo'Address = 0). Defect PEBU00007551 Pragma suppress(all_checks) not complete in the presense of 'val The compiler now honors constraint check suppression when evaluating T'Val(X). Defect PEBU00007208 Keyword replacement in INCLUDE_OPTIONAL incorrect Corrected problem where the context was not being properly adjusted when performing resolution of multiple includes using Keyword replacement. Defect PEBU00006994 Control>Show>Versions doesn't display correct version of file Defect PEBU00007600 TOC problems for PowerPC/LynxOS A new switch, CONSERVE_DATA_NAMESPACE has been added. The default value for this switch is False. If it is set to True, the switch minimizes the data namespace used in generated object code. This setting is most useful for LynxOS and AIX targets, where the switch results in smaller TOC tables. Defect PEBU00007543 bug with child package visibility of parent's private part (RM95 4.6) Defect PEBU00007498 record rep specs fail with aliased components Defect PEBU00007495 Assertion_Error on a protected type Defect PEBU00007489 bad optimized IL conversion signed int => float Defect PEBU00007486 Apex 4.0.0b error with instantiations Defect PEBU00007467 Exit status of apex link always 0 When running a link ('apex link' or 'rada -goal linked'), where an error occurred, the exit status of the link was not correct. Defect PEBU00007450 ASSERTION_ERROR in decl_checking.chk_decl Corrected problem in mapping of access types and the finalization check. Defect PEBU00007443/7263 Show_Difference Bug For some files do a difference on two versions was failing. No output would be produced and the busy cursor would remain. Defect PEBU00007435 CONSTRAINT_ERROR in decl_checking.chk_decl compiling Booch Component DEFECT PEBU00007386 amending Imports across different architectures Error conditions generated while accepting import changes are handled in a more consistent manner. With the change Apex will not terminate on the first error, but instead will continue processing any additional target views specified. Defect PEBU00007332 Apex 4.0.0b pragma Import error in RCI view Corrects a problem in the handling of pragma Import in the Apex 4.0.0b semantic analyzer. In an RCI view, when analyzing a pragma Import, the imported unit was not marked as not requiring a body. DEFECT PEBU00007324 accept_import_changes: 'not a view' Apex has been enhanced such that it will not fail when accepting import changes if a view with the same subsystem name for the destination set is not found; instead it will attempt to use the import used by the source (the -strict option will prevent this). Defect PEBU00007209 Fatal Memory Leak Storage for a task (i.e. its stack and TCB) was not being reclaimed when an allocated task is deallocated via a call to an instance of Unchecked_Deallocation. Defect PEBU00007085 one-part subps don't work as dispatching ops Improved support for AltiVec opcodes This patch supports additional AltiVec opcodes for PowerPC targets. Fixes for parameter passing to properly generate intermediate code for the various target platforms. The Apex 4.0.0 Ada compiler was not accepting renaming of some primitive operations, in particular equality ("="). This patch updates the compiler to now accepts these renamings. This patch contains modifications that allow Apex to avoid the Flexlm issues with obtaining licenses on machines which allow a descriptors limit greater than 1024. The problem is common on Solaris 5.9 (and newer) releases and typically results in failure of the Apex Message Server to start.