C 5.3: Patch for Forte Developer 6 update 2 C compiler |
Status: RELEASED
Patch Id: 111679-15
***********************************************************************
READ THE TERMS OF THE AGREEMENT ("AGREEMENT") IN THE LEGAL_LICENSE.TXT
FILE CAREFULLY BEFORE USING THIS SOFTWARE. BY USING THE SOFTWARE, YOU
AGREE TO THE TERMS OF THIS AGREEMENT. IF YOU DO NOT AGREE TO ALL OF THE
TERMS, PROMPTLY DESTROY THE UNUSED SOFTWARE.
***********************************************************************
For further information on patching best practices and resources, please
see the Big Admin Patching Center, http://www.sun.com/bigadmin/patches/
***********************************************************************Summary: C 5.3: Patch for Forte Developer 6 update 2 C compiler
Date: Nov/18/2009
Installation Requirements:
NA
Solaris Release: 2.6 7 8 9
Sun OS Release: 5.6 5.7 5.8 5.9
Unbundled Product: Forte Developer 6 Update 2
Unbundled Release: C_5.3
Xref:
Topic:
Relevant Architecture: sparc
BugId's fixed with this patch:
4423502 4427975 4434792 4465047 4467473 4486317 4489516 4493917 4509092 4522629 4524014 4527934 4593140 4599678 4639260 4649023 4658693 4764299 4766782 4784986 4799818 4808597 4859958 4907885 4920625 4984367
Changes incorporated in this version:
4920625
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/WS6U2/bin/acomp
<install_dir>/SUNWspro/WS6U2/bin/acompegr
<install_dir>/SUNWspro/WS6U2/bin/c89
<install_dir>/SUNWspro/WS6U2/bin/cc
<install_dir>/SUNWspro/WS6U2/bin/lint
<install_dir>/SUNWspro/WS6U2/bin/lint1
<install_dir>/SUNWspro/WS6U2/bin/lint2
<install_dir>/SUNWspro/WS6U2/bin/lint2n
<install_dir>/SUNWspro/WS6U2/bin/ssbd
<install_dir>/SUNWspro/WS6U2/lib/locale/C/LC_MESSAGES/SUNW_SPRO_SC_acomp.error_help.html
<install_dir>/SUNWspro/WS6U2/lib/locale/C/LC_MESSAGES/SUNW_SPRO_SC_acomp.msg
Problem Description:
4920625 WS6U2 compiler misses enum stabs resulting in dbx reporting wrong enum values
(from 111679-14)
4984367 problems with 64-bit compilation using F6U2 as well S1S8 with "c" compiler.
(from 111679-13)
4907885 bug in cc when -g or -O are not used
(from 111679-12)
4859958 C 5.3 Wasted space internal compiler error and cu can't use 4806237 work-around
(from 111679-11)
4808597 mlib_ImageAffineIndex (v8plusa) test coredump under k2
(from 111679-10)
4766782 C file loops in acomp / ir_mkoverlap()
4784986 Patch 111679-09 causes: internal compiler error: Wasted space
4799818 Nozomi patch: Assertion failed at line 2250 of ../src/xlate.c
(from 111679-09)
4764299 Compiling an Oracle source file runs forever
(from 111679-08)
4593140 fail to handle a casting properly
(from 111679-07)
4423502 Provide way to provide source name to be used in stabs and STT_FILE symbol
4467473 cc w/o any option breaks mozilla build
4489516 test compiled with -xarch=v9 fails
4527934 yabe over-aggressively optimizes routines containing calls to setjmp
4639260 compiling via intermediary file -E > .i misses stabs info to .c file in .o
4649023 C program that uses malloc works with WS5.0/F6U1 fails with forte6U2
4658693 64bit module built without any options returns the different value.
(from 111679-06)
4599678 F61 & 2 fails w/left operand of "." must be lvalue in this context
(from 111679-05)
4434792 compiler spews unusable error/warning messages on struct type mismatch
4465047 C compiler error messages should contain Error:
4509092 -errwarn=E_SLASH_STAR_IN_CMNT is processed incorrectly
4524014 lint too smart for own good (thinks 5.10 < 5.7)
(from 111679-04)
4522629 Disagreement between C++ and C when returning a struct (C violates ABI)
(from 111679-03)
4493917 -xstrconst option causes bus error
(from 111679-02)
4486317 switch statements don't work properly
(from 111679-01)
4427975 WS6 lint returns "internal compiler error:"
Revision History:
111679-12 111679-03 111679-07 111679-02 111679-11 111679-05 111679-06 111679-09 111679-04 111679-10 111679-13 111679-08 111679-01 111679-14
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: Wednesday, November 18, 2009