Patch Name: PHSS_25171 Patch Description: s700_800 11.00 ANSI C compiler cumulative patch Creation Date: 01/09/18 Post Date: 01/09/21 Hardware Platforms - OS Releases: s700: 11.00 s800: 11.00 Products: C-ANSI-C B.11.00 Filesets: C-ANSI-C.C,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP C-ANSI-C.C,fr=B.11.01.01,fa=HP-UX_B.11.00_32/64,v=HP C-ANSI-C.C,fr=B.11.01.06,fa=HP-UX_B.11.00_32/64,v=HP C-ANSI-C.C,fr=B.11.01.20,fa=HP-UX_B.11.00_32/64,v=HP C-ANSI-C.C-HELP,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP C-ANSI-C.C-HELP,fr=B.11.01.01,fa=HP-UX_B.11.00_32/64,v=HP C-ANSI-C.C-HELP,fr=B.11.01.06,fa=HP-UX_B.11.00_32/64,v=HP C-ANSI-C.C-HELP,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_25171 Symptoms: PHSS_25171: This is a general patch for the Oracle defect fix JAGad86031 . CR:JAGad86031 : Oracle : large-frame entry/exit code not trap-safe under +Oentrysched . PHSS_22272: This patch contains +help html documents which had not been shipped with the previous patch. Without html documents, +help won't work. PHSS_21505: 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: JAGad04768 : On a PA64 architecure, when the following options were used to compile code; "-g +DA2.0W +O2 +O0 CR: JAGad01539 : +O2 took 2.7 hours vs. 5 minutes at +O0 CR: JAGad02322 : Bad ucode is generated for static initializer with ?: CR: JAGad07976 : O3 Optimization Fails with PBO CR: JAGad09629 : Partially initialized const vars truncated at +O3 CR: JAGad10939 : SIGSEGV with +O2 and +Olibcalls when memset() called multiple times PHSS_21223: Fix for the following : Oracle: skipped branches to the next instr corrupt the .SKIP condition PHSS_18300: Fixes and enhancemnets for the following: Panic 7815 when compiling with DOC (-g and optimized.) Error 5176 when compiling with +ESlit. Generating long calls at +O0. PHSS_17508: Fixes for the following bugs. N-class not recognized as being PA-RISC 2.0. Compiler error with long command lines. Can't specify extern/noextern for both 32 and 64 bit.+ESlit causes errors at link time. Bad debug information for some pointer types. Fix for default signedness for ENUMs and bitfields for +DD64. few optimization problems. PHSS_15524: 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_14325: Fix for a compiler abort for options "+O2 -z". PHSS_13985: Fixs to PBO and +O2 based optimizations. PHSS_12991: 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_25171: CR:JAGad86031: With the +Oentrysched option, large stack frames were not having a problem. PHSS_22272: This patch contains +help html documents which had not been shipped with the previous patch. Without html documents, +help won't work. PHSS_21505: The fixes for the below mentioned defects have been included to the June 2000 release 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: JAGad04768 : The change was done in cc driver, cc.c . There was a new variable which kept track of the optimization level seen the command line and would not be reset for "+O0" CR: JAGad01539 : In efficiency in codegen NSYM process resluted in excessive compilation time. CR: JAGad02322 : The file /CLO/Components/C_FE/Src/Ssem/ss_condl.c was changed. A particular variable init_sym1 in the function expr_condl was not being reset to NULL after use and the residual value contained in it would eventually result in the generation of bad ucode. CR: JAGad02692 : The file /CLO/Components/C_FE/Src/Ssem/ss_call.c was changed. The warning message being emitted for _asm function was suppressed using a predefined flag is_this_an_asm. CR: JAGad07976 : Wrong Ucode was being generated in the Front End when the commandline option +Xuc was used. This eventually would lead to assertion failure in the HLO. 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_21223: 1)Conditional branches with side-effects found in the shadow of a skip instruction that branch to the next instruction (after the NOP) will remove the completer and .SKIP bit on the skip instruction. Could happen in about any code, including at +O2. PHSS_18300: 1) Panic 7815 when compiling with DOC (-g and optimized.) 2) Error 5176 when compiling with +ESlit. 3) Generating long calls at +O0. PHSS_17508: 1) N-class not recognized as being PA-RISC 2.0. 2) Signal 11 using #pragma init. 3) Divide by zero when compiling Pro/E version 19. 4) Compiler dumps core when align pragmas used and source contains a typedef with a base type of void. 5) +m doesn't print out types for unsigned long long fields. 6) Wants common way to specify extern/noextern for both 32 and 64 bit. 7) Incorrect initialization with wide strings. 8) Internal error 5172 with +Oextern/+Onoextern and long list of symbols. 9) Error 1521 initializing non-aggregates auto objects with braces. 10)extern const declarations not affected by +ESlit. 11)HLO incorrectly creates a pointer to a bit aligned object. 12)cc doesn't recognize +pa nad +pal options. 13)Bad code when using -= on a pointer. 14)Bad debug info for float args using +DA2.0W, no prototype. 15)Warning 502 and +DA2.0W, ignores bad cast in initializer. 16)Adding the +On=name list option. 17)Enhance hpc compiler by providing +W options. 18)#pragma WARN_LEVEL 3 is not supressing backend warning message. 19)Not generating most efficient code with +ESfic. 20)Dereferencing pointers to volatile data may result in incorrect code. 21)Function calls with more than 65 arguments may cause compiler failures. 22)Generating bad code for conversion of unsigned long long to double or long double when the unsigned long long is in a register. 23)Access to bit fields at +O2 may generate incorrect code. 24)Can genereate bad code when with unsigned, 64 bit operations. 25)Debug information is incorrect for some pointer types 26)+ESdev causes panic for small program in 64-bit mode 27)enums and bitfields should be signed by default in +DD64 mode 28)const qualified incomplete extern array is treated as HUGE in ccom. 29)Fast register allocation in OPT incorrectly deletes branch 30)Optimizer not doing a great job compiling loop/branch instensive code 31)+Onoloopunroll not honored if +DA2.0 or +DS2.0 given 32)Core Dump - when optimization used with dimensional arrays 33)using the HP_DEFINED_EXTERNAL pragam results in bad register allocation 34)Error 6922 Utils: Unable to convert into PIC sequence 35)Incorrect PA64 code generation with embedded systems options. 36)Assembler parsing error: error 1007: Label not allowed here in this expr - n_gregs_used*4 PHSS_15524: 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_14325: 1) Compiler runtime abort for options "+O2 -z". 2) Compiler aborts sometime for option +Onoextern PHSS_13985: 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_12991: 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: 5003438002 4701408674 1653282004 4701411025 4701393686 1653258285 1653248260 Patch Files: C-ANSI-C.C,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP: C-ANSI-C.C,fr=B.11.01.01,fa=HP-UX_B.11.00_32/64,v=HP: C-ANSI-C.C,fr=B.11.01.06,fa=HP-UX_B.11.00_32/64,v=HP: C-ANSI-C.C,fr=B.11.01.20,fa=HP-UX_B.11.00_32/64,v=HP: /opt/ansic/bin/cc /opt/ansic/bin/c89 /opt/ansic/lbin/ccom /opt/ansic/lib/nls/msg/C/cc.cat /opt/ansic/lib/nls/msg/C/cc.msgs C-ANSI-C.C-HELP,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP: C-ANSI-C.C-HELP,fr=B.11.01.01,fa=HP-UX_B.11.00_32/64,v=HP: C-ANSI-C.C-HELP,fr=B.11.01.06,fa=HP-UX_B.11.00_32/64,v=HP: C-ANSI-C.C-HELP,fr=B.11.01.20,fa=HP-UX_B.11.00_32/64,v=HP: /opt/ansic/html/guide/C/c_index.html /opt/ansic/html/guide/C/errors.html /opt/ansic/html/guide/C/preproc.html /opt/ansic/html/guide/C/threads.html /opt/ansic/html/guide/C/calling.html /opt/ansic/html/guide/C/exp_oper.html /opt/ansic/html/guide/C/prog_org.html /opt/ansic/html/guide/C/whatisc.html /opt/ansic/html/guide/C/comp_run.html /opt/ansic/html/guide/C/migrating.html /opt/ansic/html/guide/C/statements.html /opt/ansic/html/guide/C/data_decs.html /opt/ansic/html/guide/C/portability.html /opt/ansic/html/guide/C/summ_opt.html what(1) Output: C-ANSI-C.C,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP: /opt/ansic/bin/c89: LINT A.11.01.25171.GP CXREF A.11.01.25171.GP HP92453-01 A.11.01.25171.GP HP C Compiler $ Sep 8 2000 23:13:51 $ /opt/ansic/bin/cc: LINT A.11.01.25171.GP CXREF A.11.01.25171.GP HP92453-01 A.11.01.25171.GP HP C Compiler $ Sep 8 2000 23:13:51 $ /opt/ansic/lbin/ccom: LINT A.11.01.25171.GP CXREF A.11.01.25171.GP HP92453-01 A.11.01.25171.GP HP C Compiler HP-UX SLLIC/OPTIMIZER UX.11.01.275: 09/13/01 HP aC++ B3910B A.03.30 Classic Iostream Library HP aC++ B3910B A.03.30 Language Support Library REV: HP SESD Code 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) $ Sep 8 2000 23:13:51 $ /opt/ansic/lib/nls/msg/C/cc.cat: HP92453-01 A.11.01.25171.GP HP C Compiler Copyright 1985, Hewlett-Packard Co. /opt/ansic/lib/nls/msg/C/cc.msgs: None C-ANSI-C.C-HELP,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP: /opt/ansic/html/guide/C/c_index.html: None /opt/ansic/html/guide/C/errors.html: None /opt/ansic/html/guide/C/preproc.html: None /opt/ansic/html/guide/C/threads.html: None /opt/ansic/html/guide/C/calling.html: None /opt/ansic/html/guide/C/exp_oper.html: None /opt/ansic/html/guide/C/prog_org.html: None /opt/ansic/html/guide/C/whatisc.html: None /opt/ansic/html/guide/C/comp_run.html: None /opt/ansic/html/guide/C/migrating.html: None /opt/ansic/html/guide/C/statements.html: None /opt/ansic/html/guide/C/data_decs.html: None /opt/ansic/html/guide/C/portability.html: None /opt/ansic/html/guide/C/summ_opt.html: None cksum(1) Output: C-ANSI-C.C,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP: 1138236821 577536 /opt/ansic/bin/cc 1138236821 577536 /opt/ansic/bin/c89 2293162359 11177984 /opt/ansic/lbin/ccom 228845789 104066 /opt/ansic/lib/nls/msg/C/cc.cat 1251571161 174386 /opt/ansic/lib/nls/msg/C/cc.msgs C-ANSI-C.C-HELP,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP: 1997667483 3014 /opt/ansic/html/guide/C/c_index.html 3238930655 253775 /opt/ansic/html/guide/C/errors.html 2537763566 25411 /opt/ansic/html/guide/C/preproc.html 3196822499 44447 /opt/ansic/html/guide/C/threads.html 901405858 41026 /opt/ansic/html/guide/C/calling.html 3471034576 107102 /opt/ansic/html/guide/C/exp_oper.html 2268073429 44536 /opt/ansic/html/guide/C/prog_org.html 3557832335 4197 /opt/ansic/html/guide/C/whatisc.html 1371602875 100213 /opt/ansic/html/guide/C/comp_run.html 3323609900 11893 /opt/ansic/html/guide/C/migrating.html 2592966208 57712 /opt/ansic/html/guide/C/statements.html 3559587171 100089 /opt/ansic/html/guide/C/data_decs.html 3570735425 93062 /opt/ansic/html/guide/C/portability.html 3733085744 123481 /opt/ansic/html/guide/C/summ_opt.html Patch Conflicts: None Patch Dependencies: s700: 11.00: PHSS_22217 s800: 11.00: PHSS_22217 Hardware Dependencies: None Other Dependencies: None Supersedes: PHSS_12991 PHSS_13985 PHSS_14325 PHSS_15524 PHSS_17508 PHSS_18300 PHSS_21223 PHSS_21505 PHSS_22272 Equivalent Patches: None Patch Package Size: 13360 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_25171 5. Run swinstall to install the patch: swinstall -x autoreboot=true -x patch_match_target=true \ -s /tmp/PHSS_25171.depot By default swinstall will archive the original software in /var/adm/sw/save/PHSS_25171. 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_25171.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_25171.text file is available in the product readme: swlist -l product -a readme -d @ /tmp/PHSS_25171.depot To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHSS_25171.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None