PROBLEM: (83940) (PATCH ID: OSF520-042) ******** There are some circumstances in which the Spike post-link optimizer may delete the high instruction of a two-instruction pair, but fail to delete the associate low instruction. This will cause Spike to emit a runtime error similar to the following: FAULT: ../../../../../../src/usr/ccs/bin/spike/rel.cxx(4100): REL_CheckSectionRelocs: mismatched value sections for R_SPIKE_IMMED_GP_HI32 and R_SPIKE_IMMED_LO32 This can be worked around by passing the option "-nounreachable" to Spike. This patch prevents this error without needing to pass that option to Spike. PROBLEM: (HPAQ603X9) (PATCH ID: OSF520-592) ******** The prof utility's -testcoverage option will sometimes report bad source line number ranges. This problem will occur frequently for programs compiled from C++ sources and for C sources that include header files containing source instructions. This problem can only be detected by inspecting the output of a prof command such as: prof -pixie -testcoverage .Counts For programs susceptible to the prof bug, the output will report line ranges that don't match the source files. For example a line range may be reported that spans multiple procedures, or a line range may end at a line beyond the end of the file. The short example below illustrates the problem. % cat -n hello.c 1 main(){ 2 printf("Hello\n"); 3 } 4 5 notexecuted(){ 6 printf("Include some source below\n"); 7 #include "source.h" 8 } % cat -n source.h 1 printf("Line 1\n"); 2 printf("Line 2\n"); 3 4 5 printf("Line 5\n"); 6 printf("Line 6\n"); 7 printf("Line 7\n"); 8 9 10 printf("Line 10\n"); % cc -g hello.c % atom -tool pixie a.out % a.out.pixie % prof -pixie -testcoverage a.out a.out.Counts Profile listing generated Tue Jul 9 15:17:22 2002 with: prof -pixie -testcoverage a.out a.out.Counts ---------------------------------------------------------------------------- * -t[estcoverage] using basic-block counts; * * sorted alphabetically by procedure name; * * the compiler emitted code for these lines, but the code was unexecuted * ---------------------------------------------------------------------------- notexecuted (hello.c), line(s): 1-10 This example reports an unexecuted basic block in hello.c lines 1 through 10, but hello.c is only 8 lines long. When corrected, prof will report lines 5 through 8 in hello.c as unexecuted. The source.h line numbers will not be included in the results. PROBLEM: (94378(SPR) (PATCH ID: OSF520-755) ******** The problem corrected by this fix occurs when a performance tool writes a file on a Sierra Clusters (PFS) Parallel File System. Pixie, hiprof, and other Atom-based tools will report a generic error message: % pixie a.out pixie: info: instrumenting a.out ... atom: Error: A fatal error has occurred. This could be caused by a lack of space in /tmp, or an instrumentation code error. Check /tmp, or run atom with the -debug switch. pixie: error: exiting due to error instrumenting a.out A similar error will be seen in hiprof. For programs instrumented by pixie or hiprof on a non-PFS the error will occur as a SIGBUS signal if the instrumented program writes the .Counts or .hiout file on a PFS. If prof or gprof are used to merge .Counts files with the -merge option to a file on a PFS, the error will occur once again as a SIGBUS signal that terminates the program. PROBLEM: (95675) (PATCH ID: OSF520-1015) ******** Pixie, hiprof, third, spike, cord, uprofile and odump report a fatal assertion for some executables that have been linked at optimization level 2 (-O2) or greater. (Each tool reports the same error.) For example, pixie reports the following fatal assertion error: % pixie a.out pixie: info: instrumenting a.out ... Assertion failed: preloc_lookahead->r_size == R_IMMED_LO32 || preloc_lookahe ad->r_size == R_GPRELLOW, file ../../../../../../src/usr/ccs/lib/libmld/cmrl c_consume.c, line 1078 atom: Error: Command '/tmp/atomAAAadaBxa/a.out.tool' terminated with receipt of SIGABRT signal. atom: Error: A fatal error has occurred. This could be caused by a lack of space in /tmp, or an instrumentation code error. Check /tmp, or run atom with the -debug switch. pixie: error: exiting due to error instrumenting a.out This problem has been fixed. Pixie, hiprof, third, spike, cord, uprofile and odump now run without reporting this fatal assertion error.