Patch Name: PHSS_25249 Patch Description: s700_800 11.00 +O4/PBO compiler cumulative patch Creation Date: 01/09/18 Post Date: 01/09/19 Hardware Platforms - OS Releases: s700: 11.00 s800: 11.00 Products: C-ANSI-C B.11.00 aCC compiler FORTRAN 77 compiler Filesets: Auxiliary-Opt.LANG-AUX,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP Auxiliary-Opt.LANG-AUX,fr=B.11.01.01,fa=HP-UX_B.11.00_32/64,v=HP Auxiliary-Opt.LANG-AUX,fr=B.11.01.06,fa=HP-UX_B.11.00_32/64,v=HP Auxiliary-Opt.LANG-AUX,fr=B.11.01.20,fa=HP-UX_B.11.00_32/64,v=HP Automatic Reboot?: No Status: General Release Critical: No Category Tags: defect_repair general_release Path Name: /hp-ux_patches/s700_800/11.X/PHSS_25249 Symptoms: PHSS_25249: This is a general patch for the Oracle defect fix for JAGad86031. CR: JAGad86031: Oracle : large-frame entry/exit code not trap-safe under +Oentrysched . PHSS_22217: This is a general patch for the defect fixes after the June 2000 release. CR: JAGab77993 : python fails at +O1 +ESplabel +Uzm15 with incorrect results . CR: JAGad07781 : Internal error 7108 with DA2.0W and other optimizations. CR: JAGad00760 : 11.11; BE11.11_IC16 (new compiler) performance kernel won't boot. CR: JAGad03244 : Compiler dumps core when compiling SPEC95 benchmark ijpeg. CR: JAGad03310 : ANSI C compiler produces wrong version executable. CR: JAGad01857 : Signal 11 with +DA1.1 +O2 in add_with_closure. CR: JAGad02497 : Zclass:11.11:3/22nickl:panic Spinlock deadlock! CR: JAGad04462 : Error 5172 Backend Assert CR: JAGad01539 : +O2 took 2.7 hours vs. 5 minutes at +O0 CR: JAGad09629 : Partially initialized const vars truncated at +O3 CR: JAGad10939 : SIGSEGV with +O2 and +Olibcalls when memset() called multiple times PHSS_21222: Files included in PHSS_21222 are same as PHSS_19178. PHSS_19178: Patch PHSS_18301 will fail to install when the swinstall(1M) patch_match_target option is used. The following message will be in the swinstall.log file: WARNING: Could not apply the software selection "". This software can only be installed at "/", and a "non-/" destination directory has already been specified. PHSS_18301: Memory corruption problem when using -g -O2 +Oreusedir option for 64 bit ucomp doesn't work properly PHSS_17870: Fixes for the following bugs. Wait for the reuse depository lock file indefinitely if permission denied error occurs. Changes for SmartBuild Implements routine profiling support(+pa) Unalignment problem in sllic when compiler is compiled with +DA2.0 Extended the notion of should_split to pass2_sllic As a compile-time consideration for both -g and +O0. Fixed the code which looks for the $split_here$ label in pass2_sllic to distinguish between s_labels and the brain damaged line record labels Fixed a bug in procedure splitting code. Support for procedure splitting(improves branch misprediction by redirecting fixed conditional branches to trampoline bbs) Fixed a bug in sm_hash_compare() Code change for new model name 9000/800/... series generate long calls according to the flag passed form the frontends Fixes for Conditional Evaluation and the other regarding Conditional Evaluation's side effects. Top-down tuning of iter_eqn() Added A180C and A180 entry so +DAA180C entry will work on 11.x Fix the cmp_arc problem exposed by a new version of quicksort() Changes to generate PC-rel access instruction sequence for PA64 and PA32 mode in the situation that data is in the literal subspace and we want to generate PIC code Added various procedures and prototypes for several correctness and performance bugs overly-huge size of libcomp.sl Bad debug information for some pointer types. Fix for default signedness for ENUMs and bitfields for +DD64. few optimization problems. malloc failure in proe at +O3 PHSS_15913: Fixes for the following bugs. Compiler emits sub-optimal code for loop/branch intensive code. C code terminates with signal 11 if compiled with -O Compilation failure due to excessive memory usage. Internal error 6153 with +O2 +Onolimit when compiling F90 Warning 6005 (infinite loop) should not say it's an internal error Very long compile time with +O2 +DA2.0 Compiler does poor job with copying unaligned data to/from aligned data Optimizer problem : *(--p)=0; gets removed. The i2 application SCP core dumps at runtime when compiled at +O2. Wide mode (+DD64) programs fail at +O3 +Oparallel. C compiler emits incorrect debug information for pointer types. PHSS_15523: Fixes for the following bugs. Bad code generated for switch stmt with +DA2.0W with +O1. Signal 11 with -O with unsigned long long. Incorrect results for options +O2 -Aa +DAportable +Onolimit. Performance loss due to incorrect loop unroll. compiler internal panic 6862 in Ralloc Inconsistent compiler specific data structre error(6933) PHSS_14379: Fix for a compiler abort for options "+O2 -z". PHSS_14028: Fixes to PBO and +O2 based optimizations. PHSS_13496: Fix of code generation for unaligned struct copy. Two internal error bug fixes. Panic using "register" keyword. Error 7108 with large parameters in 64-bit mode. Defect Description: PHSS_25249: CR:JAGad86031: With the +Oentrysched option, large stack frames were not having a problem. PHSS_22217: The fixes for the below mentioned defects have been included to the June 2000 released compiler. CR: JAGab77993 : long displacement spill was being improperly handled in ralloc . There were two changes : *For long disp spills,two instrns need to be executed, but only one of them was being executed as they were both after the branch. Change was made to put one of them before the branch and the next in the delay slot. *Moreover one of the functions was no handling long displacement spills.That function was made to handle it. CR: JAGad07781 : The problem was span-dependent within a very narrow window. A few instructions (out of ~2048) more or less between a conditional branch and it's target will make this problem go away. The root cause was that the instructions inserted by the +Omultiprocessor option were not being accounted for by the compiler component that recodes branches that originally do not reach their targets into sequences that do reach. This defect has been present ever since the introduction of +Omultiprocessor, but you have to hit a branch where the number of instructions under the span of the branch falls into the narrow window where the number of instructions inserted later by +Omultiprocessor will make a decision that the branch will reach incorrect. CR: JAGad00760 : Indirect calls in PA64 were not guarded against the enhanced-if-conversion optimization filling the delay slot of the call with the load defining the target code address. CR: JAGad03244 : The register allocator had inserted spill code for the result of an instruction that was in a branch delay slot. CR: JAGad03310 : New machines with previously-reserved processor-id values in the PDC ROM may produce default architecture level (no +DA option used) object files that are PA1.1 and not PA2.0. CR: JAGad01857 : A routine in ucode was accessing long structures from a wrong offset instead of the beginning of the structure.Thus it was eventually referencing junk. So this correction was made. CR: JAGad02497 : Codegen was failing to set the keep/ordered bit for the volatile indirect load . CR: JAGad04462 : The codegen asserts while doing pointer arithmetic where the immediate value is 0x80000000 in the 32-bit mode.So test was added for this value. CR: JAGad01539 : In efficiency in codegen NSYM process resluted in excessive compilation time. Cr: JAGad09629 : Initializations of the kind: typedef struct { struct { int i1; int i2; int i3; int i4; } i; } T; static const T x = { 0 }; was not initializing i1, i2, ... to 0 (zero) properly at +O3 CR: JAGad10939 : The inliner (in webs) trys to replace the function calls (e.g. memset) with some instructions in the code. When the call is replaced the resources attached with it should also be removed. But the current implementation was freeing only the register resources, not the memory resources. PHSS_21222: Same bits as PHSS_19178. PHSS_19178: The SD-UX 'directory' attribute specified in PHSS_18301 included a trailing slash (/), which caused swinstall(1M) to act incorrectly when the patch_match_target option is used. PHSS_19178 has been built so that swinstall(1M) acts correctly. PHSS_18301: 1) some pointers to structures are left dangling when the global heap is being freed 2) linker 64 eats up the ucomp option string when passing down to the 64 bit ucomp PHSS_17870: 1) correctness bug: wait forever for a lock on the reuse depot. 2) unalignment problem in the source code of sllic when compiler is compiled with +DA2.0 3) A ralloc testcase (dtscm01363.c) was failing in after.c because of a bogus label on one of its instructions 4) In conditional evaluation, we remove a skip instruction inside a basic block that is otherwise empty. If this block is the last in a procedure, the remove operation fails. The second fix involves a branch optimization that attempts to remove a branch. If the branch is preceded by a skip instruction from Cond Eval, the skip instruction is nullified. 5) correctness bug: break stmts didn't exit the entire loop when it should be, but instead just exit the for loop within the while loop 6) Fix for Sybase. introduced a peephole pattern match which eliminates an unnecessary extract when comparing against 4 (takes place when doing comparisons against sizeof) 7)Not generating most efficient code with +ESfic. 8)Dereferencing pointers to volatile data may result in incorrect code. 9)Function calls with more than 65 arguments may cause compiler failures. 10)Generating bad code for conversion of unsigned long long to double or long double when the unsigned long long is in a register. 11)Access to bit fields at +O2 may generate incorrect code. 12)Can generate bad code when with unsigned, 64 bit operations. 13) Debug information is incorrect for some pointer types 14) +ESdev causes panic for small program in 64-bit mode 15) enums and bitfields should be signed by default in +DD64 mode 16) const qualified incomplete extern array is treated as HUGE in ccom. 17) Fast register allocation in OPT incorrectly deletes branch 18) Optimizer not doing a great job compiling loop/branch intensive code 19) +Onoloopunroll not honored if +DA2.0 or +DS2.0 given 20) Core Dump - when optimization used with dimensional arrays 21) using the HP_DEFINED_EXTERNAL pragma results in bad register allocation 22)Error 6922 Utils: Unable to convert into PIC sequence 23)Incorrect PA64 code generation with embedded systems options. 24)Assembler parsing error: error 1007: Label not allowed here in this expr - n_gregs_used*4 25) memory leak problem for proE PHSS_15913: (1) Performance defect : Compiler emits sub-optimal code for loop/branch intensive code. (2) C code terminates with signal 11 if compiled with -O (3) Poor resource utilization : Compilation failure due to excessive memory usage. (4) Internal error 6153 with +O2 +Onolimit when compiling Fortran 90. (5) Warning 6005 (infinite loop) should not say it's an internal error. This warning indicates potential problems in the user programs in that the compiler has detected an infinite loop. Compiler diagnostic claiming it to be an internal error is confusing and is changed. (6) Compile time performance fix : Very long compile time with +O2 +DA2.0 (7) Performance defect : Compiler does poor job with copying unaligned data to/from aligned data (8) Optimizer problem : *(--p)=0; gets removed. (9) The i2 application SCP core dumps at runtime when compiled at +O2. (10) Wide mode (+DD64) programs fail at +O3 +Oparallel. (11) C compiler emits incorrect debug information for pointer types. This results in incorrect output being produced when inside the debugger. PHSS_15523: 1) Bad code for switch stmt with +DA2.0W with +O1. 2) Signal 11 with -O with unsigned long long. 3) Compiler produced incorrect results with +O2 -Aa +DAportable +Onolimit. 4) Performance defect, compiler did not predict branches correctly in some cases, even with PBO. 5) fixes a compiler internal panic 6862 in Ralloc 6) Performance defect, compiler did not unroll some loops resulting in a performance loss, fixed that. 7) Compiler error from optimizer(6933) Compiler may generate incorrect code when compiling a source file which contains more than 8192 bytes of packed (non-padded) static global data for destination architectures PA2.0N or PA2.0W. The incorrect code will trigger an optimizer error #6933 at optimization levels +O2 and higher. PHSS_14379: 1) Compiler runtime abort for options "+O2 -z". 2) Compiler aborts sometime for option +Onoextern. PHSS_14028: 1) A performance improvement fix, propagating information about "extern const arrays" at +O2. 2) Illegal completer was used for a compare immediate double word 3) Assembler ignores space register field for FDCS instructions 4) In pa64 assembler, the keyword SAVE_SR0 was changed to RP_IN_R31 5) Fix to a core dump, when PBO optimizations are used. 6) Fixed an backend assert, error 7832: Bad PA2.0W fixup: sym+const. for "be, l .." instruction PHSS_13496: 1) Unaligned structure causes an incorrect store, losing 1 byte in the process, in 64-bit mode. 2) Internal error 7108 with large (greater than 32Kb) parameters passed by value in 64-bit mode 3) Compiler panics when too many variables in a function use the "register" keyword. SR: 5003412692 1653255018 4701393686 1653258285 1653248260 4701393686 1653258285 1653248260 Patch Files: Auxiliary-Opt.LANG-AUX,fr=B.11.00,fa=HP-UX_B.11.00_32/64, v=HP: Auxiliary-Opt.LANG-AUX,fr=B.11.01.01,fa=HP-UX_B.11.00_32/64, v=HP: Auxiliary-Opt.LANG-AUX,fr=B.11.01.06,fa=HP-UX_B.11.00_32/64, v=HP: Auxiliary-Opt.LANG-AUX,fr=B.11.01.20,fa=HP-UX_B.11.00_32/64, v=HP: /opt/langtools/lib/nls/msg/C/ucomp.cat /opt/langtools/lbin/ucomp /opt/langtools/lib/libcomp.sl what(1) Output: Auxiliary-Opt.LANG-AUX,fr=B.11.00,fa=HP-UX_B.11.00_32/64, v=HP: /opt/langtools/lbin/ucomp: HP-UX UCOMP UX.11.01.64: 09/13/01 HP-UX SLLIC/OPTIMIZER UX.11.01.275: 09/13/01 HP aC++ B3910B A.01.01 Stream Library HP aC++ B3910B A.03.04 (970930) Support Library Ucode Code Generator - UX11.01.43 (PACG Sep 12, 2001 ) High Level Optimizer - UX.11.00.000320 (UX11.01-CURR ENT) [-DHLO_RELEASE +noeh -z +O2 +Oinitcheck ] - 13-Sep-2001.17:20 Ucode-2 - UCODE2_UX11.01_STABLE(v2.1) (October 19, 1 998) Internal_Unsupported_Version libc.a_ID@@/main/r10dav /libc_dav/libc_dav_cpe/eso_raghud_raghud_102 0_test_br/1 /ux/core/libs/libc/archive_pa1/libc.a_ID Apr 6 2001 21:06:17 /opt/langtools/lib/nls/msg/C/ucomp.cat: None /opt/langtools/lib/libcomp.sl: HP-UX UCOMP UX.11.01.64: 09/13/01 cksum(1) Output: Auxiliary-Opt.LANG-AUX,fr=B.11.00,fa=HP-UX_B.11.00_32/64, v=HP: 3909749947 8515584 /opt/langtools/lbin/ucomp 2916533320 42056 /opt/langtools/lib/nls/msg/C/ucomp.cat 2174519413 28672 /opt/langtools/lib/libcomp.sl Patch Conflicts: None Patch Dependencies: None Hardware Dependencies: None Other Dependencies: None Supersedes: PHSS_21222 PHSS_19178 PHSS_18301 PHSS_17870 PHSS_15913 PHSS_15523 PHSS_14379 PHSS_14028 PHSS_13496 PHSS_22217 Equivalent Patches: None Patch Package Size: 8420 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_25249 5. Run swinstall to install the patch: swinstall -x autoreboot=true -x patch_match_target=true \ -s /tmp/PHSS_25249.depot By default swinstall will archive the original software in /var/adm/sw/save/PHSS_25249. If you do not wish to retain a copy of the original software, use the patch_save_files option: swinstall -x autoreboot=true -x patch_match_target=true \ -x patch_save_files=false -s /tmp/PHSS_25249.depot WARNING: If patch_save_files is false when a patch is installed, the patch cannot be deinstalled. Please be careful when using this feature. For future reference, the contents of the PHSS_25249.text file is available in the product readme: swlist -l product -a readme -d @ /tmp/PHSS_25249.depot To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHSS_25249.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None