
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 <exe> <exe>.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.


PROBLEM: (96370) (PATCH ID: OSF520-1199)
********
  This patch fixes a fatal error with the spike optimization command.
  The error is exhibited as follows:

  % spike a.out
  Error in a.out: Invalid image, invalid compact relocations, symndx mismatch 
for low relocations



