 |
≫ |
|
|
 |
パッチ名: PHSS_35980
パッチ摘要: 11.31 u2comp/be/pluginライブラリパッチ
作成日: 07/03/07
公開日: 07/04/18
ハードウェアプラットフォームおよびOSリリース:
11.31
現象:
PHSS_35980:
01)JAGag24837:
IAシステム用最適化オプション"-O"を使ってfprintf()をコンパイルすると、
fprintf()の実行時に、x25initコマンドが/etc/x25/x25confファイルを壊しま
す。
02)JAGag32532:
関数呼び出しのリターン時に、値渡しラージパラメータのアドレス/値が壊れ
ていることがあります。
03)JAGaf99194:
交換、タイリング、アンロールおよびジャム、融合、および分散のようなルー
プ最適化を行うと、浮動小数点(FP)演算の順序が変わり、FP結果の精度が低下
する可能性があります。したがって、コンパイラは、HPのFPモデルに従ってこ
れらの最適化を行うべきです(つまり、ループ最適化によってFP結果が変わる
場合は、ユーザーが+Ofltacc=relaxedを指定した場合にのみその最適化を行う
べきです)。ところが、現在のコンパイラはこのルールを無視します。
04)JAGag10594:
+Ofenvaccessオプションと+Ofltacc=relaxedオプションを組み合わせて使用す
ると、オプティマイザが無限にループすることがあります。
05)JAGag16706:
不正なmemcpy合成が行われます(この問題を回避するために+Uhmemop=disable
を指定せざるを得ません)。
06)JAGag17453:
非常に大きな"値によるstruct"を渡すと、コンパイルに時間がかかり、メモリ
ー使用量が増えます。
07)JAGag17310:
デバッグモード(-g)の場合、未結合配列引き数の宣言内に不完全なクラス宣言
が含まれていると、コンパイラが異常終了します。
08)JAGag19492:
デフォルトのfltaccの場合、ループ交換が不正確なFP結果を生成します。
09)JAGag20670:
switch文使用時のリカバリコード生成にバグがあります。
10)JAGag23282:
パラメータがオーバーラップしていると、不正なコード移動が行われることが
あります。
問題点の説明:
PHSS_35980:
01)JAGag24837:
x25initコマンド"-O"は、fprintfのコードを正しく生成していませんでした。
02)JAGag32532:
ラージパラメータに渡すラージパラメータのコードを正しく生成していません
でした。
03)JAGaf99194:
一部のループ最適化で、fltaccオプションが無視されていました。
04)JAGag10594:
"+Ofenvaccess +Ofltacc=relaxed"を指定すると、オプティマイザが無限にル
ープすることがありました。
05)JAGag16706:
PortAThon: +O2のループが不正に__milli_memmoveを呼び出していました。
06)JAGag17453:
お客様のテストケースで、コンパイルに時間がかかり、メモリー割り当てエラ
ーが起きていました。
07)JAGag17310:
DWARF生成に問題があったため、コンパイラが異常終了していました。
08)JAGag19492:
+O3を使って最適化すると、値が変わることがありました。
09)JAGag20670:
+O2使用時のswitch文での不正なリカバリコード。
10)JAGag23282:
コンパイラは、標準ライブラリ呼び出し(strlen)への変更付きルーチンパラメ
ータ渡しを正しく解析していませんでした。その結果、呼び出しの前に、変更
コードが移動されるため、呼び出しから予期しない出力が返されていました。
-----------------------------------------------------------------------------
Patch Name: PHSS_35980
Patch Description: 11.31 u2comp/be/plugin library patch
Creation Date: 07/03/07
Post Date: 07/04/18
Hardware Platforms - OS Releases:
11.31
Products:
Auxiliary-Opt B.11.31
Filesets:
Auxiliary-Opt.LANG-AUX,fr=C.06.12,fa=HP-UX_B.11.31_IA,v=HP
C-Dev-Tools.C-AUX,fr=C.06.12,fa=HP-UX_B.11.31_IA,v=HP
Automatic Reboot?: No
Status: General Release
Critical:
Yes
PHSS_35980: ABORT CORRUPTION
See JAGag17310, JAGag24837 and JAGag32532.
Category Tags:
defect_repair general_release critical halts_system
corruption
Path Name: /hp-ux_patches/11.X/PHSS_35980
Symptoms:
PHSS_35980:
JAGag24837: x25init command corrupts the /etc/x25/x25conf
file during an fprintf(), when it is compiled
with the optimization option "-O" for IA
systems.
JAGag32532: Address/values of large parameters passed by
value may be corrupted upon return of function
call.
JAGaf99194: Some loop optimizations such as interchange,
tiling, unroll-and-jam, fusion, and
distribution can potentially change the order
of floating- point (FP) operations, which
result less accurate FP result. The compiler
should guarantee that these optimizations
follow the HP's FP model (i.e. if a particular
loop optimization changes FP result value, this
optimization should only be performed when the
user specifies +Ofltacc=relaxed). This is
broken in current compiler.
JAGag10594: +Ofenvaccess, +Ofltacc=relaxed options
combination can cause optimizer to loop
infinitely.
JAGag16706: Wrong memcpy synthesis is happening.
(+Uhmemop=disable to workaround)
JAGag17453: passing huge struct by value results in long
compile time and memory usage.
JAGag17310: Given an incomplete class declaration involved
in the declaration of an unbounded array
argument the compiler will abort under debug
(-g).
JAGag19492: Loop interchange produces inaccurate FP results
in default fltacc.
JAGag20670: Recovery code generation bug with a switch
statement.
JAGag23282: overlapping parameters result in wrong code
motion in some case.
Defect Description:
PHSS_35980:
JAGag24837: x25init command -O generated bad code for
fprintf
JAGag32532: Bad code for large parms passed to large parms
JAGaf99194: fltacc option is ignored by some loop
optimizations
JAGag10594: "+Ofenvaccess +Ofltacc=relaxed" can cause
optimizer to loop infinitely
JAGag16706: PortAThon: +O2 loop incorrectly calls
__milli_memmove
JAGag17453: Long compilation time and memory allocation
failure for large parms
JAGag17310: This is caused by a problem in DWARF
generation.
JAGag19492: Value-changing optimization with +O3
JAGag20670: Recovery code error in switch statement using
+O2
JAGag23282: The compiler incorrectly analyzed the passing
of a modified routine parameter to a a standard
library call (strlen). As a result, it moved
the modification before the call, resulting in
an unexpected output from the call.
Enhancement:
No
SR:
8606469650 8606478215 8606441461 8606453886 8606460672
8606461495 8606461346 8606463736 8606465040 8606467926
Patch Files:
Auxiliary-Opt.LANG-AUX,fr=C.06.12,fa=HP-UX_B.11.31_IA,v=HP:
/opt/langtools/lbin/be
/opt/langtools/lbin/u2comp
/opt/langtools/lib/hpux32/libu2comp.so
/opt/langtools/lib/hpux64/libu2comp.so
/opt/langtools/lib/nls/msg/C/u2comp.cat
C-Dev-Tools.C-AUX,fr=C.06.12,fa=HP-UX_B.11.31_IA,v=HP:
/opt/langtools/lib/hpux32/librtc_aux.a
/opt/langtools/lib/hpux64/librtc_aux.a
what(1) Output:
C-Dev-Tools.C-AUX,fr=C.06.12,fa=HP-UX_B.11.31_IA,v=HP:
/opt/langtools/lib/hpux32/librtc_aux.a:
HP IA-64 RTC_AUX B.11.23 (Thu Dec 14 23:44:18 2006 P
ST)
/opt/langtools/lib/hpux64/librtc_aux.a:
HP IA-64 RTC_AUX B.11.23 (Thu Dec 14 23:44:18 2006 P
ST)
Auxiliary-Opt.LANG-AUX,fr=C.06.12,fa=HP-UX_B.11.31_IA,v=HP:
/opt/langtools/lbin/be:
IELF v2.6 (SYZYGY Feb 21 13:48)
HP Low-level optimizer AR.0606.116 (02/21/07)
HP Itanium libflow AR0703.1 (06/19/06) [3006574443 3
94309]
linkstamp Thu Feb 22 22:38:32 2007 PST
/opt/langtools/lbin/u2comp:
IELF v2.6 (SYZYGY Feb 21 13:48)
HP Itanium libflow AR0703.1 (06/19/06) [3006574443 3
94309]
linkstamp Thu Feb 22 22:38:33 2007 PST
/opt/langtools/lib/hpux32/libu2comp.so:
None
/opt/langtools/lib/hpux64/libu2comp.so:
None
/opt/langtools/lib/nls/msg/C/u2comp.cat:
None
cksum(1) Output:
C-Dev-Tools.C-AUX,fr=C.06.12,fa=HP-UX_B.11.31_IA,v=HP:
922365234 20316 /opt/langtools/lib/hpux32/librtc_aux.a
2406126060 25276 /opt/langtools/lib/hpux64/librtc_aux.a
Auxiliary-Opt.LANG-AUX,fr=C.06.12,fa=HP-UX_B.11.31_IA,v=HP:
3721979319 42436172 /opt/langtools/lbin/be
510241721 16907616 /opt/langtools/lbin/u2comp
2380724906 163880 /opt/langtools/lib/hpux32/libu2comp.so
3208974707 174240 /opt/langtools/lib/hpux64/libu2comp.so
4229042848 11660 /opt/langtools/lib/nls/msg/C/u2comp.cat
Patch Conflicts: None
Patch Dependencies: None
Hardware Dependencies: None
Other Dependencies: None
Supersedes: None
Equivalent Patches:
PHSS_35977:
s700: 11.23
s800: 11.23
Patch Package Size: 20790 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_35980
5. Run swinstall to install the patch:
swinstall -x autoreboot=true -x patch_match_target=true \
-s /tmp/PHSS_35980.depot
By default swinstall will archive the original software in
/var/adm/sw/save/PHSS_35980. If you do not wish to retain a
copy of the original software, include the patch_save_files
option in the swinstall command above:
-x patch_save_files=false
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_35980.text file is
available in the product readme:
swlist -l product -a readme -d @ /tmp/PHSS_35980.depot
To put this patch on a magnetic tape and install from the
tape drive, use the command:
dd if=/tmp/PHSS_35980.depot of=/dev/rmt/0m bs=2k
Special Installation Instructions: None
|