 |
≫ |
|
|
 |
パッチ名: PHSS_36345
パッチ摘要: s700_800 11.23 Integrityアンワインドライブラリ
作成日: 07/06/22
公開日: 07/06/26
ハードウェアプラットフォームおよびOSリリース:
s700: 11.23
s800: 11.23
現象:
PHSS_36345:
1)JAGag41939:
_ZN15_Unwind_Context5setGREjm12_UNW_Booleanのような未解決の
"Unwind_Context"シンボルがあるため、ドキュメントに記載されていない、
libunwind内のルーチンを呼び出すプログラムが異常終了するか、ロードでき
ないことがあります。
2)JAGag36095:
C++例外の処理時に、アンワインドプログラムがNaTビットを正しくリストアし
ないことがあるため、SIGILLエラーが起きます。
3)JAGag39913:
シグナルハンドラからスローされたC++例外が捕捉されません。
問題点の説明:
PHSS_36345:
1)JAGag41939:
ドキュメントに記載されていないルーチンをエクスポートするように
libunwindを修正しました。
2)JAGag36095:
スタックのアンワインド操作時に、AR.RNATレジスタを正しくリストアしてい
ませんでした。
3)JAGag39913:
C++例外の処理時に、シグナルハンドラを通じてアンワインドする場合、コン
テキストを正しく復元していませんでした。
-----------------------------------------------------------------------------
Patch Name: PHSS_36345
Patch Description: s700_800 11.23 Integrity Unwind Library
Creation Date: 07/06/22
Post Date: 07/06/26
Hardware Platforms - OS Releases:
s700: 11.23
s800: 11.23
Products: N/A
Filesets:
OS-Core.CORE2-64SLIB,fr=B.11.23,fa=HP-UX_B.11.23_IA,v=HP
OS-Core.CORE2-SHLIBS,fr=B.11.23,fa=HP-UX_B.11.23_IA,v=HP
ProgSupport.C2-INC,fr=B.11.23,fa=HP-UX_B.11.23_IA,v=HP
Automatic Reboot?: No
Status: General Release
Critical:
Yes
PHSS_36345: ABORT
JAGag41939: A program may abort while attempting to call
an internal undocument libunwind routine.
JAGag39913: The unwind library may terminate the process
when searching for an exception handler.
PHSS_34859: ABORT
This patch fixes a case where the unwind library may
terminate the process when searching for an exception
handler.
PHSS_34854: MEMORY_LEAK
This patch fixes the problem of the Unwind library leaking
memory if repeatedly loaded and unloaded (via
dlopen/dlclose).
Category Tags:
defect_repair enhancement general_release critical
halts_system memory_leak
Path Name: /hp-ux_patches/s700_800/11.X/PHSS_36345
Symptoms:
PHSS_36345:
JAGag41939: Programs calling internal undocumented
routines in libunwind may abort or fail to load due to
unresolved "Unwind_Context" symbols, such as
_ZN15_Unwind_Context5setGREjm12_UNW_Boolean.
JAGag36095: Unwinder may restore NaT bits incorrectly
during C++ exception handling, possibly causing SIGILL.
JAGag39913: Throwing a C++ exception from a signal handler
results in an uncaught exception.
PHSS_34859:
JAGag16854: Unwinder may fail for C++ routines with heavy
use of floating-point code, resulting in process
termination with the message "Fatal stack unwind error
while processing exception".
PHSS_34854:
JAGag11564: Unwind library will leak memory if repeatedly
loaded and unloaded (via dlopen/dlclose).
JAGaf55224: Customers have asked for enhancements to
have unwind library return source file and line number
information for each frame, when available.
PHSS_34043:
JAGaf77294: Unwinder restored stack point incorrectly for
some highly-optimized large routines, possibly
resulting in uncaught C++ exceptions.
Applications using _Unwind_Backtrace() would get incorrect
return value from _Unwind_GetIP() unless a C++ exception
was thrown first.
Stack trace on 11.31 systems would not show signal number.
PHSS_33352:
JAGaf31974: Poor performance for C++ applications with
heavy use of exception handling.
PHSS_31851:
Enhancement to deliver new functionality for the
debugger.
PHSS_31086:
JAGaf26050: Unwind express library did not properly
unwind from routines with a large number of spilled
registers.
PHSS_30232:
JAGae66019: Unwind library was not able to process
exceptions thrown under low-memory conditions.
PHSS_30017:
JAGae93989: Unwind library previously did not support
exceptions thrown from a signal handler; the application
would have been aborted when an thrown exception was
not caught before unwinding into a signal handler frame.
Defect Description:
PHSS_36345:
JAGag41939: Undocumented routines were not exported by
libunwind.
JAGag36095: The AR.RNAT register was not being restored
correctly during the stack unwind operation.
JAGag39913: The context was not being restored correctly
when unwinding through a signal handler during C++
exception processing.
PHSS_34859:
JAGag16854: A sign-extension problem caused the unwinder
to attempt to restore registers that had not been
spilled.
PHSS_34854:
JAGag11564: Unwind library was not freeing its emergency
memory pool when unloaded with dlclose.
JAGaf55224: Customers have asked for enhancements to
have unwind library return source file and line number
information for each frame, when available.
PHSS_34043:
JAGaf77294: Unwinder did not check for epilog count = 0
before restoring stack pointer at end of a body region.
Unwind library was not completely initialized until first
C++ exception was thrown.
11.31 changed the way the signal number was stored in the
stack.
PHSS_33352:
JAGaf31974: Unwind library was a significant cause of
poor performance for applications that made heavy use
of C++ exception handling mechanism.
PHSS_31851:
Debugger needed unwind enhancements to support
new "info catch" feature.
PHSS_31086:
JAGaf26050: Unwind express library did not properly
decode priunat_when descriptor.
PHSS_30232:
JAGae66019: The unwind library needs to be able
to allocate memory in order to unwind, but in
low-memory conditions, it could not obtain the
necessary memory.
PHSS_30017:
JAGae93989: The C++ standard explicitly disallows
throwing exceptions from a signal handler, so the
runtime support was not designed to support it.
Enhancement:
Yes
PHSS_36345:
This patch delivers new interfaces to read and write
optimizer annotation information and C++ exception
handling tables, for use by third-party instrumentation
tools.
PHSS_34854:
( JAGaf55224 )
This patch delivers new functionality to return source
file and line number information for each stack frame.
The U_STACK_TRACE function will add source file and
line number information, when available, to each frame
listed. New APIs uwx_get_source_info and
uwx_find_source_info have been added for obtaining
this information programmatically.
PHSS_33352:
JAGaf31974: This patch delivers significant performance
improvement for C++ exception handling, and improved
display of signal frames from U_STACK_TRACE().
PHSS_31851:
This patch delivers a new hook routine for use by
the debugger for its "info catch" feature.
PHSS_30017:
JAGae93989: This patch delivers new support for
exceptions thrown from a signal handler.
SR:
8606489378 8606482189 8606487127 8606460831 8606454952
8606395211 8606417461 8606371556 8606365417 8606302660
8606332874
Patch Files:
OS-Core.CORE2-64SLIB,fr=B.11.23,fa=HP-UX_B.11.23_IA,v=HP:
/usr/lib/hpux64/libunwind.so.1
OS-Core.CORE2-SHLIBS,fr=B.11.23,fa=HP-UX_B.11.23_IA,v=HP:
/usr/lib/hpux32/libunwind.so.1
ProgSupport.C2-INC,fr=B.11.23,fa=HP-UX_B.11.23_IA,v=HP:
/usr/include/unwind.h
/usr/include/uwx.h
/usr/include/uwx_self.h
/usr/include/optannot.h
/usr/include/cxa_hp_eh.h
what(1) Output:
OS-Core.CORE2-64SLIB,fr=B.11.23,fa=HP-UX_B.11.23_IA,v=HP:
/usr/lib/hpux64/libunwind.so.1:
HP-UX Unwind Library 1.54 [Thu Jun 7 12:13:19 2007
PDT]
OS-Core.CORE2-SHLIBS,fr=B.11.23,fa=HP-UX_B.11.23_IA,v=HP:
/usr/lib/hpux32/libunwind.so.1:
HP-UX Unwind Library 1.54 [Thu Jun 7 12:12:54 2007
PDT]
ProgSupport.C2-INC,fr=B.11.23,fa=HP-UX_B.11.23_IA,v=HP:
/usr/include/unwind.h:
None
/usr/include/uwx.h:
None
/usr/include/uwx_self.h:
None
/usr/include/optannot.h:
None
/usr/include/cxa_hp_eh.h:
None
cksum(1) Output:
OS-Core.CORE2-64SLIB,fr=B.11.23,fa=HP-UX_B.11.23_IA,v=HP:
2218289777 673584 /usr/lib/hpux64/libunwind.so.1
OS-Core.CORE2-SHLIBS,fr=B.11.23,fa=HP-UX_B.11.23_IA,v=HP:
3676385608 651360 /usr/lib/hpux32/libunwind.so.1
ProgSupport.C2-INC,fr=B.11.23,fa=HP-UX_B.11.23_IA,v=HP:
2799245388 14369 /usr/include/unwind.h
2411775979 17544 /usr/include/uwx.h
1160906286 2224 /usr/include/uwx_self.h
542094794 9375 /usr/include/optannot.h
2556364123 3270 /usr/include/cxa_hp_eh.h
Patch Conflicts: None
Patch Dependencies: None
Hardware Dependencies: None
Other Dependencies: None
Supersedes:
PHSS_30017 PHSS_30232 PHSS_31086 PHSS_31851 PHSS_33352 PHSS_34043
PHSS_34854 PHSS_34859
Equivalent Patches:
PHSS_36352:
11.31
Patch Package Size: 500 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_36345
5. Run swinstall to install the patch:
swinstall -x autoreboot=true -x patch_match_target=true \
-s /tmp/PHSS_36345.depot
By default swinstall will archive the original software in
/var/adm/sw/save/PHSS_36345. 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_36345.text file is
available in the product readme:
swlist -l product -a readme -d @ /tmp/PHSS_36345.depot
To put this patch on a magnetic tape and install from the
tape drive, use the command:
dd if=/tmp/PHSS_36345.depot of=/dev/rmt/0m bs=2k
Special Installation Instructions: None
|