Patch Name: PHSS_23351 Patch Description: s700_800 10.X Fortran90 B.10.20.(19|20|27) cumulative patch Creation Date: 01/02/19 Post Date: 01/02/22 Hardware Platforms - OS Releases: s700: 10.20 s800: 10.20 Products: FORTRAN90 B.10.20.19 FORTRAN90 B.10.20.20 FORTRAN90 B.10.20.27 Filesets: FORTRAN90.FORT90-PRG,B.10.20.19 FORTRAN90.FORT90-PRG,B.10.20.20 FORTRAN90.FORT90-PRG,B.10.20.27 FORTRAN90.FORT90-MAN,B.10.20.19 FORTRAN90.FORT90-MAN,B.10.20.20 FORTRAN90.FORT90-MAN,B.10.20.27 FORTRAN90.F90-JPN-E-MAN,B.10.20.19 FORTRAN90.F90-JPN-E-MAN,B.10.20.20 FORTRAN90.F90-JPN-E-MAN,B.10.20.27 FORTRAN90.F90-JPN-S-MAN,B.10.20.19 FORTRAN90.F90-JPN-S-MAN,B.10.20.20 FORTRAN90.F90-JPN-S-MAN,B.10.20.27 Automatic Reboot?: No Status: General Superseded Critical: No Path Name: /hp-ux_patches/s700_800/10.X/PHSS_23351 Symptoms: PHSS_23351: 01)JAGad49313:Compiler does not allow common blocks to be mapped to system shared memory regions. 02)JAGad47314:Fortran77 and Fortran90 processes cannot share memory whose size is not a multiple of 8 bytes. 03)JAGad08926:The compiler is not unrolling a simple loop, user unroll is 2.5 times faster. 04)JAGad05033:The F90 Compiler takes over 100x longer to compile a series of logical/equivalence statements than the F77 compiler. PHSS_23243: 01)JAGad47735:Compiler does not allow a called "C" subroutine to modify a string literal parameter. This was allowed in F77. PHSS_23025: 01)JAGad41375:Compiler asserts on source with large number of tokens. 02)JAGad39319:Internal Compiler error using +Oopenmp 03)JAGad41488:Return 0 not handled properly (should be a normal return). 04)JAGab75257:Fortran90 does not support Complex(16). Should return an error. 05)JAGad44817:Compiler Internal Error with +Oopenmp. 06)JAGad43235:Use of PRIVATE directive causes internal compiler abort with bad dictionary reference. PHSS_22538: 01)JAGaa68236: Computation of "s**5." is 2-3 times slower with F90 than F77. 02)JAGad12935: f90 program generates incorrect results when compiled with -C. 03)JAGad15427: The compiler aborts using +O3 +Oparallel for programs with a GOTO out of a LOOP_PARALLEL. 04)JAGad23650: Compiler generates internal error message during assignment of a string field from a constant record substructure. 05)JAGad30138: Parallel reduction code overwrites static variables in BSS. 06)JAGad32585: F90 compilation error: Return_U2_Variable_Tag_From_Variable observed when a name list containing objects declared in common is used in a read statement. 07)JAGad32663: Error 4244 was not generated for OpenMP code as expected when a dynamic variable is used in a "private" clause of the "$omp parallel" directive. 08)JAGad33376: +DAportable does not work on 11x PA 2.0 machines. It produces an executable that will not run on PA 1.1. 09)JAGad35535: The F90 compiler needs an extension to allow a file to be opened several times using different unit numbers. This switch was in the F77 product as +E5. PHSS_22464: 01)JAGaa68254: Compiler Internal Error referencing f90numtab overflow with large data initialization. 02)JAGad12934: Compiler Internal Error with (character*(*)) when compiling index((text),'TEST'). 03)JAGad15565: IXOR of logical*1 was not supported. 04)JAGad23380: Customer requests E and G format treatment of leading zeros match f77 compiler output for easier comparison of prior results. 05)JAGad25820: +fastallocatable caused errors with allocatable arrays that were SAVEd. 06)JAGad29886: Compiler Internal Error when a module defines a COMMON block and USEs another module that also defines the same COMMON block. PHSS_22290: 01)JAGad10204: Compiler Internal Error with 'write(*) sizeof(1)' 02)JAGad12719: EQUIVALENCE statements with shared common caused compile time errors. PHSS_22112: 01)JAGad04422: Some OpenMP directives caused compiler internal errors when used with Modules. 02)JAGad08015: When multiple load options occurred in a single compile line and the later options were shorter than the earlier options, incorrect behavior occurred. 03)JAGad14842: The zero based getarg solution provided by PHSS_20578 caused incompatiblies for some customers using shared library calls to getarg. 04)JAGad10257: FSTREAM intrinsic only returns the lower 32 bits of FILE *fp pointer. That can cause problems for applications using wide mode (+DA2.0W). 05)JAGad21776: Hollerith literals that extended beyond a single line behaved differently in f77 +es than with f90 with +extend_source 06)JAGad23380: Request for closer correspondance of I/O output between f77 and f90. PHSS_21787: 01)JAGac40404: OpenMP runtime routines not yet available (such as omp_get_thread_num, omp_set_lock, omp_unset_lock, omp_test_lock) cause an abnormal exit from the compiler. 02)JAGac86812: segmentation fault in Fortran90 Front End after invalid alternate return detected. 03)JAGac89036: use of +fastallocatable building module gives error 8901 04)JAGad00206: +fastallocatable problem with SPEC 191.fma3d 05)JAGad00286: compiler abort for legal code with PARAMETER value in a CHARACTER declaration. 06)JAGad00311: assigning 65535 to an integer*2 generated an error message. 07)JAGad02360: Parallel reduction overflows were not handled correctly. 08)JAGad04015: Difference in literal printing between f77 +es and f90 +extend_source. 09)JAGad04620: Problem with Union overlapping other variables. 10)JAGad09092: NASTRAN f90 problem +DS2.0W segmentation fault and wrong behavior 11)JAGad09294: LOGICAL FUNCTION G*1() syntax not accepted by f90, but was accepted by f77. 12)JAGad12095: OpenMP directive error handling was inadequate. PHSS_21485: 01)JAGab70979: Reshape with negative numbers gives incorrect results. 02)JAGab75487: Some variables starting with Z in data statements are not handled properly. 03)JAGac86733: Logical statement function containing floating point gives incorrect results. 04)JAGad00245: Backend Assert - Unimplemented feature 5172 while compiling +O3 +Oparallel for a loop that had a multiple of 2 loop stride. 05)JAGad00286: When a CHARACTER declaration size is set by a PARAMETER value, the compiler complains that the value was undefined. 06)JAGad00305: Alternate return arguments in an external subroutine call that was part of an IF statement caused an compiler internal error (8901). 07)JAGad00306: REAL*4 constants that exceeded the range of REAL*4 variables caused a compiler time error to be generated. 08)JAGad04026: Need to support OpenMP model of threadprivate. Defect Description: PHSS_23351: 01)JAGad49313:There was no mechanism for this in the compiler. Added compilation switch +indirectcommonlist=file to allow the common blocks listed in the specified file to be treated as shared common blocks. These common blocks are not attached. The user must attach or otherwise allocate storage for the common blocks before they are referenced. Resolution:Recompile with the new compiler using +indirectcommonlist=file switch. 02)JAGad47314:There was no mechanism to select this behavior. Added the +nopadsharedcommon flag to direct the compiler to not pad shared common blocks to a multiple of 8 bytes. All source files referencing the same shared common block must be compiled with the same setting of this flag. Resolution:Recompile with the new compiler using +nopadsharedcommon flag. 03)JAGad08926:There was a problem with max/min reductions in the loop unroll algorithm. Resolution:Recompile with the new compiler. 04)JAGad05033:Equivalence processing in the front end used an overly simplisitic n**3 algorithm. It has been enhanced to an n**2 algorithm. Resolution:Recompile with the new compiler. PHSS_23243: 01)JAGad47735:The places string literals in read-only memory. Modified the compiler to place the literal in read-write memory if the user specifies +charlit77. Resolution:Recompile with the new compiler using +charlit77. PHSS_23025: 01)JAGad41375:Token string table size was limiting number of tokens. Resolution: Recompile with new compiler. 02)JAGad39319:The IFBLOCK following the OMPPARALLELDOBLOCK was being read before "insertendompdo" was called. Resolution: Recompile with new compiler. 03)JAGad41488:Compiler didn't handle return 0 correctly. Resolution: Recompile with new compiler. 04)JAGab75257:Compiler tried to represent data types in an unsupported format. Resolution: Recompile with new compiler. 05)JAGad44817:A push routine in DU_directives.c was being called twice when it should only be called once. Resolution: Recompile with new compiler. 06)JAGad43235:Compiler didn't handle PRIVATE directives correctly. Resolution: Recompile with new compiler. PHSS_22538: 01)JAGaa68236: F90 did not inline x**r, where r is a real constant with an integral value. Resolution: Recompile with new compiler. 02)JAGad12935: The basic basic block optimizer in the LLO disposed of a store that it incorrectly determined was redundant. Resolution: Recompile with new compiler. 03)JAGad15427: The optimizer tried to parallelize a loop with multiple exits and aborted. This type of loop cannot be parallelized. The compiler now generates a warning message and continues to compile without parallelizing the loop. Resolution: Recompile with new compiler. 04)JAGad23650: The compiler was producing an unexpected type of initializer for an array of derived type, when the initial value was an array constructor composed of structure constructors. Resolution: Recompile with new compiler. 05)JAGad30138: The compiler was using an incorrect memory area when several reduction variables were needed within a loop. Resolution: Recompile with new compiler. 06)JAGad32585: The compiler did not correctly handle the name list. Resolution: Recompile with new compiler. 07)JAGad32663: The compiler did not handle this disallowed variable correctly. It now generates the appropriate error message. Resolution: Recompile with new compiler. 08)JAGad33376: The link process caused 2.0 libraries to get pulled in. We now pull in 1.1 libraries. Resolution: Rebuild. 09)JAGad35535: The compiler now supports +multi_open to allow a file to be used in multiple F90 Open statements. Resolution: Compile using the new +multi_open compiler switch. PHSS_22464: 01)JAGaa68254: Compiler Internal Error referencing f90numtab overflow with large data initialization. Internal compiler tables were increased in size. Resolution: Recompile with new compiler. 02)JAGad12934: Compiler failed to handle an extra set of paratheses in a character variable as an intrinsic argument. Resolution: Recompile with new compiler. 03)JAGad15565: IXOR of logical*1 was not supported. Resolution: Recompile with new compiler. 04)JAGad23380: Customer requests E and G format treatment of leading zeros match f77 compiler output for easier comparison of prior results. New switch +io77 added to support this functionality. Resolution: Recompile with new compiler using +io77. 05)JAGad25820: +fastallocatable caused errors with allocatable arrays that were SAVEd. Resolution: Recompile with new compiler. 06)JAGad29886: Compiler Internal Error when a module defines a COMMON block and USEs another module that also defines the same COMMON block. Resolution: Recompile with new compiler. PHSS_22290: 01)JAGad10204: Compiler failed to handle correctly a constant argument to sizeof. Resolution: Recompile with new compiler. 02)JAGad12719: EQUIVALENCE statements with shared common were not handled correctly. Resolution: Recompile with new compiler. PHSS_22112: 01)JAGad04422: Some OpenMP directives caused parallel code to be misplaced in the code stream when used with Modules. Resolution: Recompile with new compiler. 02)JAGad08015: The load option buffer was not being reinitialized between uses, leaving garbage at the end of the buffer on second and later uses. Resolution: Recompile with new compiler. 03)JAGad14842: The zero based getarg solution provided by PHSS_20578 caused incompatiblies for some customers using shared library calls to getarg, so PHSS_20578 was superceded. Resolution: Zero-based getarg behavior is now the default when recompiling code. (HP f77 compatible and also the method used by most other Fortran vendors). To retain the one-based behavior of earlier versions of f90, recompile with the switch +getarg1. 04)JAGad10257: FSTREAM intrinsic only returns the lower 32 bits of FILE *fp pointer. That can cause problems for applications using wide mode (+DA2.0W). Resolution: Recompile with new compiler. 05)JAGad21776: Hollerith literals that extended beyond a single line behaved differently in f77 +es than with f90 with +extend_source. Resolution: Recompile with new compiler using +es switch. 06)JAGad23380: f90 has different I/O behavior for some cases with G format. New switch added to provide G format that behaves like f77. Resolution: Recompile with new compiler using +gformat77. PHSS_21787: 01)JAGac40404: OpenMP runtime routines not yet available did not give an appropriate error message. Resolution: Recompile with new compiler. 02)JAGac86812: Fortran90 Front End did not handle an invalid alternate return appropriately. Resolution: Recompile with new compiler. 03)JAGac89036: Errors were present in design of fastallocatable option. New design is binary compatible with non-fastallocatable code, so mixed compilation is allowed. Resolution: Recompile with new compiler 04)JAGad00206: Errors were present in design of fastallocatable option. New design is binary compatible with non-fastallocatable code, so mixed compilation is allowed. Resolution: Recompile with new compiler 05)JAGad00286: Fortran Front End did not handle PARAMETER values in CHARACTER declarations properly. Resolution: Recompile with new compiler. 06)JAGad00311: assigning 65535 to an integer*2 did not allow for unsigned value representation. Resolution: Recompile with new compiler. 07)JAGad02360: HLO did not use cpslib 'rover' feature for parallel reduction overflow Resolution: Recompile with new compiler. 08)JAGad04015: f90 +extend_source blindly extended the line with blanks while with +es, f77 trimmed the line to match the blanks in the source file. Resolution: Recompile with new compiler using the new flag +es instead of +extend_source. 09)JAGad04620: Unions not at the start of structures were incorrectly handled. Resolution: Recompile with new compiler. 10)JAGad09092: Assigned format labels in wide mode were not handled correctly. Resolution: Recompile with new compiler. 11)JAGad09294: LOGICAL FUNCTION G*1() syntax not accepted by f90, but was accepted by f77. Resolution: Recompile with new compiler. 12)JAGad12095: OpenMP directives did not handle several cases appropriately. These were resolved. Resolution: Recompile with new compiler. PHSS_21485: 01)JAGab70979: Integer exponentiation of negative numbers by negative numbers was incorrectly implemented. Resolution: Recompile with new compiler. 02)JAGab75487: While implemented the 'Z' hex data format extension for DATA statements to better support existing f77 code, the parser was incorrectly changed to not distingish between variables and hex values starting with Z. Resolution: Recompile with new compiler. 03)JAGac86733: When logical statement functions contained floating point code, the result register was not set properly. Resolution: Recompile with new compiler. 04)JAGad00245: The HLO phase encoded a nonexistent arithmetic left shift instead of the correct logical left shift. Resolution: Recompile with new compiler. 05)JAGad00286: The parser was not making PARAMETER values available to CHARACTER declarations. Resolution: Recompile with new compiler. 06)JAGad00305: Alternate return arguments were not handled correctly for some cases. Resolution: Recompile with new compiler. 07)JAGad00306: Users desired that out of range REAL*4 constants in f90 match the behavior of f77. f90 generated an error message while f77 replaced out of range constants with the largest representable REAL*4 constant. Resolution: Recompile with new compiler. 08)JAGad04026: The OpenMP model of threadprivate needed to be mapped to the HP model of thread private. Also, warnings were added to state that unnamed critical sections are not supported yet. Resolution: Recompile with new compiler. SR: 0000000000 Patch Files: /opt/fortran90/bin/f90 /opt/fortran90/lbin/f90com32 /opt/fortran90/lbin/f90com64 /opt/fortran90/lib/nls/msg/C/f90.cat /opt/fortran90/lib/nls/msg/C/f90com.cat /opt/fortran90/share/man/man1.Z/f90.1 /opt/fortran90/share/man/ja_JP.eucJP/man1.Z/f90.1 /opt/fortran90/share/man/ja_JP.SJIS/man1.Z/f90.1 /opt/fortran90/lib/libF90.a /opt/fortran90/lib/pa2.0/libF90.a what(1) Output: /opt/fortran90/bin/f90: HP-UX f90 20010214 (082309) B3907DB/B3909DB PHSS_23 351 B.10.20.30 HP F90 v2.4.13 /usr/lib/libc: $Revision: 76.3 $ /opt/fortran90/lbin/f90com32: HP F90 v2.4.13 HP-UX SLLIC/OPTIMIZER UX.11.01.96 (ROSE): 11/16/98 HP aC++ B3910B A.01.19.02 Classic Iostream Library HP aC++ B3910B A.01.19.02 Language Support Library Ucode Code Generator - UX11.01.04(GS IB4) (PACG - No vember 16, 1998) HP-UX f90com32 20010214 (110533) B3907DB/B3909DB PH SS_23351 B.10.20.30 Copyright (c) 1993-2000 EPCL. All Rights Reserved. EPC Fortran-95 Version FFE15.3(S) HP:240500:103937 Ucode-2 - UCODE2_UX11.01_STABLE(v2.1) (October 19, 1 998) High Level Optimizer - UX.11.00.981019 (UX11.01-CURR ENT) [-DHLO_RELEASE +noeh -z +O2] - 11-Jan-2 001.15:51 /usr/lib/libc: $Revision: 76.3 $ /opt/fortran90/lbin/f90com64: HP F90 v2.4.13 HP-UX SLLIC/OPTIMIZER UX.11.01.96 (ROSE): 11/16/98 HP aC++ B3910B A.01.19.02 Classic Iostream Library HP aC++ B3910B A.01.19.02 Language Support Library Ucode Code Generator - UX11.01.04(GS IB4) (PACG - No vember 16, 1998) HP-UX f90com64 20010214 (111751) B3907DB/B3909DB PH SS_23351 B.10.20.30 Copyright (c) 1993-2000 EPCL. All Rights Reserved. EPC Fortran-95 Version FFE15.3(S) HP:240500:103937 Ucode-2 - UCODE2_UX11.01_STABLE(v2.1) (October 19, 1 998) High Level Optimizer - UX.11.00.981019 (UX11.01-CURR ENT) [-DHLO_RELEASE +noeh -z +O2] - 11-Jan-2 001.15:51 /usr/lib/libc: $Revision: 76.3 $ /opt/fortran90/lib/nls/msg/C/f90.cat: None /opt/fortran90/lib/nls/msg/C/f90com.cat: None /opt/fortran90/share/man/man1.Z/f90.1: None /opt/fortran90/share/man/ja_JP.eucJP/man1.Z/f90.1: None /opt/fortran90/share/man/ja_JP.SJIS/man1.Z/f90.1: None /opt/fortran90/lib/libF90.a: None /opt/fortran90/lib/pa2.0/libF90.a: None cksum(1) Output: 1182048205 380928 /opt/fortran90/bin/f90 1898560326 12214272 /opt/fortran90/lbin/f90com32 702280099 12259328 /opt/fortran90/lbin/f90com64 412476016 14060 /opt/fortran90/lib/nls/msg/C/f90.cat 1871672615 107895 /opt/fortran90/lib/nls/msg/C/f90com.cat 3506399091 21145 /opt/fortran90/share/man/man1.Z/f90.1 2916332196 23883 /opt/fortran90/share/man/ja_JP.eucJP/ man1.Z/f90.1 852479595 23966 /opt/fortran90/share/man/ja_JP.SJIS/man1.Z/ f90.1 3057005238 4048400 /opt/fortran90/lib/libF90.a 3885477316 4330148 /opt/fortran90/lib/pa2.0/libF90.a Patch Conflicts: None Patch Dependencies: None Hardware Dependencies: None Other Dependencies: None Supersedes: PHSS_23243 PHSS_23025 PHSS_22538 PHSS_22464 PHSS_22290 PHSS_22112 PHSS_21787 PHSS_21485 Equivalent Patches: None Patch Package Size: 32710 KBytes Installation Instructions: Please review all instructions and the Hewlett-Packard SupportLine User Guide or your Hewlett-Packard support terms and conditions for precautions, scope of license, restrictions, and, limitation of liability and warranties, before installing this patch. ------------------------------------------------------------ 1. Back up your system before installing a patch. 2. Login as root. 3. Copy the patch to the /tmp directory. 4. Move to the /tmp directory and unshar the patch: cd /tmp sh PHSS_23351 5a. For a standalone system, run swinstall to install the patch: swinstall -x autoreboot=true -x match_target=true \ -s /tmp/PHSS_23351.depot By default swinstall will archive the original software in /var/adm/sw/patch/PHSS_23351. If you do not wish to retain a copy of the original software, you can create an empty file named /var/adm/sw/patch/PATCH_NOSAVE. WARNING: If this file exists when a patch is installed, the patch cannot be deinstalled. Please be careful when using this feature. It is recommended that you move the PHSS_23351.text file to /var/adm/sw/patch for future reference. To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHSS_23351.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None