C 5.2: Patch for Forte Developer 6 Update 1 C compiler |
Status: RELEASED
Patch Id: 109513-11
Summary: C 5.2: Patch for Forte Developer 6 Update 1 C compiler
Date: Feb/03/2003
Installation Requirements:
None
Solaris Release: 2.6 7 8
Sun OS Release: 5.6 5.7 5.8
Unbundled Product: Forte Developer 6 Update 1
Unbundled Release: C_5.2
Xref:
Topic:
Relevant Architecture: sparc
BugId's fixed with this patch:
4375097 4375977 4387115 4390827 4405238 4414290 4415917 4423502 4424121 4427975 4458596 4473515 4486317 4522629 4524014 4639260 4766782
Changes incorporated in this version:
4766782
Patches accumulated and obsoleted by this patch:
Patches which conflict with this patch:
Required Patches:
Obsoleted by:
Files Included in this Patch:
<install_dir>/SUNWspro/WS6U1/bin/acc
<install_dir>/SUNWspro/WS6U1/bin/acomp
<install_dir>/SUNWspro/WS6U1/bin/acompegr
<install_dir>/SUNWspro/WS6U1/bin/c89
<install_dir>/SUNWspro/WS6U1/bin/cc
<install_dir>/SUNWspro/WS6U1/bin/lint
<install_dir>/SUNWspro/WS6U1/bin/lint1
<install_dir>/SUNWspro/WS6U1/bin/lint2
<install_dir>/SUNWspro/WS6U1/bin/lint2n
Problem Description:
4766782 C file loops in acomp / ir_mkoverlap()
(from 109513-10)
4423502 Provide way to provide source name to be used in stabs and STT_FILE symbol
4639260 compiling via intermediary file -E > .i misses stabs info to .c file in .o
(from 109513-09)
4524014 lint too smart for own good (thinks 5.10 < 5.7)
(from 109513-08)
4522629 Disagreement between C++ and C when returning a struct (C violates ABI)
(from 109513-07)
4486317 switch statements don't work properly
(from 109513-06)
4427975 WS6 lint returns "internal compiler error:"
4473515 cc -native expands to -xtarget=generic on recent Sun boxes
(from 109513-05)
4458596 Invalid loop code generated when no opt or tcov flags, causes Oracle failures
(from 109513-04)
4424121 S/ PROBLEM with a packed struct inside another packed struct.
(from 109513-03)
4415917 SC6.1 horks up a recursive stab for a K&R function with a short arg
4414290 C compile time doubled from compiler 4.2 to 5.2
(from 109513-02)
4390827 compiler asserts with -KPIC and optimization
4405238 ws6u1 compiler includes function names in .rodata section
4387115 SC5.2 (and 5.1) generate wrong code for long longs in 32bit mode
(from 109513-01)
4375097 Internal compiler error with -xdepend compiling Pro/E code
4375977 acomp crashes compiling Pro/E code in 64-bit mode
Revision History:
109513-08 109513-01 109513-03 109513-05 109513-09 109513-07 109513-04 109513-02 109513-10 109513-06
Patch Installation Instructions:
--------------------------------
For Solaris 2.0-2.6 releases, refer to the Install.info file and/or
the README within the patch for instructions on using the generic
'installpatch' and 'backoutpatch' scripts provided with each patch."
For Solaris 7-8 releases, refer to the man pages for instructions on
using 'patchadd' and 'patchrm' scripts provided with Solaris.
Any other special or non-generic installation instructions should be
described below as special instructions. The following example
installs a patch to a standalone machine:
example# patchadd /var/spool/patch/106326-01
The following example removes a patch from a standalone system:
example# patchrm 104945-02
For additional examples please see the appropriate man pages.Special Install Instructions:
-----------------------------
The fix for bugid 4522629 "Disagreement between C++ and C when
returning a struct (C violates ABI)" in 111679-04 breaks binary
compatibility on sparc V9 architectures only. This is because
C currently does not conform to the v9 ABI and the fix changes
C to conform to the V9 ABI. The codes affected will be any
code with a function definition or function reference where the
return value or any argument is defined as a small struct
containing an array of floating-point type, i.e. float, double,
or long double. The incompatibility will exhibit undefined
behavior if the function definition and the function reference
are compiled using different C compilers. The difference
between those C compilers being one with this patch applied or
one without this patch applied. A small struct is defined as
16 bytes for arguments, 32 bytes for return values.
The patches that will introduce this incompatibility
are 111679-04 for C Forte Developer 6 Update 2, and
109513-08 for C Forte Developer 6 Update 1.
Compatible compilers:
C Forte Developer 6 Update 1 109513-08
C Forte Developer 6 Update 2 111679-04
Binaries compiled with earlier versions of these two compilers,
or earlier versions of Forte Developer or DevPro compilers that
have function definitions or function references where the
return value or any argument is defined as a small struct
containing an array of floating-point as shown in the following
list will be incompatible with binaries compiled with the above
listed compilers.
Example of a small struct containing an array of floating-point
type that will be incompatible:
Functions returning a small struct containing a
3 or 4 element array of double:
typedef struct {
double tf[4];
} t4_st;
typedef struct {
double tf[3];
} t3_st;
Functions returning a small struct containing a
3, 4, 5, 6, 7, or 8 element array of float
typedef struct {
float tf[8];
} t8_st;
typedef struct {
float tf[7];
} t7_st;
typedef struct {
float tf[6];
} t6_st;
typedef struct {
float tf[5];
} t5_st;
typedef struct {
float tf[4];
} t4_st;
typedef struct {
float tf[3];
} t3_st;
Functions passing as an argument a small struct containing a 3,
or 4 element array of float
typedef struct {
float tf[4];
} t4_st;
typedef struct {
float tf[3];
} t3_st;
README -- Last modified date: Monday, February 3, 2003