| 1 | This file contains information about GCC releases which has been generated
|
|---|
| 2 | automatically from the online release notes. It covers releases of GCC
|
|---|
| 3 | (and the former EGCS project) since EGCS 1.0, on the line of development
|
|---|
| 4 | that led to GCC 3. For information on GCC 2.8.1 and older releases of GCC 2,
|
|---|
| 5 | see ONEWS.
|
|---|
| 6 |
|
|---|
| 7 | ======================================================================
|
|---|
| 8 | http://gcc.gnu.org/gcc-3.3/index.html
|
|---|
| 9 |
|
|---|
| 10 | GCC 3.3 Release Series
|
|---|
| 11 |
|
|---|
| 12 | February 24, 2004
|
|---|
| 13 |
|
|---|
| 14 | The [1]GNU project and the GCC developers are pleased to announce the
|
|---|
| 15 | release of GCC 3.3.3. This release was actually completed on February
|
|---|
| 16 | 14, but technical issues with the transition to new security measures
|
|---|
| 17 | for protecting FSF servers required a delay in the announcement.
|
|---|
| 18 |
|
|---|
| 19 | The GCC 3.3 release series includes numerous [2]new features,
|
|---|
| 20 | improvements, bug fixes, and other changes, thanks to an [3]amazing
|
|---|
| 21 | group of volunteers.
|
|---|
| 22 |
|
|---|
| 23 | Release History
|
|---|
| 24 |
|
|---|
| 25 | GCC 3.3.3
|
|---|
| 26 | February 14, 2004 ([4]changes)
|
|---|
| 27 |
|
|---|
| 28 | GCC 3.3.2
|
|---|
| 29 | October 16, 2003 ([5]changes)
|
|---|
| 30 |
|
|---|
| 31 | GCC 3.3.1
|
|---|
| 32 | August 8, 2003 ([6]changes)
|
|---|
| 33 |
|
|---|
| 34 | GCC 3.3
|
|---|
| 35 | May 14, 2003 ([7]changes)
|
|---|
| 36 |
|
|---|
| 37 | References and Acknowledgements
|
|---|
| 38 |
|
|---|
| 39 | GCC used to stand for the GNU C Compiler, but since the compiler
|
|---|
| 40 | supports several other languages aside from C, it now stands for the
|
|---|
| 41 | GNU Compiler Collection.
|
|---|
| 42 |
|
|---|
| 43 | A list of [8]successful builds is updated as new information becomes
|
|---|
| 44 | available.
|
|---|
| 45 |
|
|---|
| 46 | The GCC developers would like to thank the numerous people that have
|
|---|
| 47 | contributed new features, improvements, bug fixes, and other changes
|
|---|
| 48 | as well as test results to GCC. This [9]amazing group of volunteers is
|
|---|
| 49 | what makes GCC successful.
|
|---|
| 50 |
|
|---|
| 51 | For additional information about GCC please refer to the [10]GCC
|
|---|
| 52 | project web site or contact the [11]GCC development mailing list.
|
|---|
| 53 |
|
|---|
| 54 | To obtain GCC please use [12]our mirror sites, one of the [13]GNU
|
|---|
| 55 | mirror sites, or [14]our CVS server.
|
|---|
| 56 | _________________________________________________________________
|
|---|
| 57 |
|
|---|
| 58 | Please send FSF & GNU inquiries & questions to [15][email protected]. There
|
|---|
| 59 | are also [16]other ways to contact the FSF.
|
|---|
| 60 |
|
|---|
| 61 | These pages are maintained by [17]the GCC team.
|
|---|
| 62 |
|
|---|
| 63 |
|
|---|
| 64 | For questions related to the use of GCC, please consult these web
|
|---|
| 65 | pages and the [18]GCC manuals. If that fails, the
|
|---|
| 66 | [19][email protected] mailing list might help.
|
|---|
| 67 | Please send comments on these web pages and the development of GCC
|
|---|
| 68 | to our public developer mailing list at [20][email protected] or
|
|---|
| 69 | [21][email protected].
|
|---|
| 70 |
|
|---|
| 71 | Copyright (C) Free Software Foundation, Inc., 59 Temple Place - Suite
|
|---|
| 72 | 330, Boston, MA 02111, USA.
|
|---|
| 73 |
|
|---|
| 74 | Verbatim copying and distribution of this entire article is permitted
|
|---|
| 75 | in any medium, provided this notice is preserved.
|
|---|
| 76 |
|
|---|
| 77 | Last modified 2004-02-29 [22]Valid XHTML 1.0
|
|---|
| 78 |
|
|---|
| 79 | References
|
|---|
| 80 |
|
|---|
| 81 | 1. http://www.gnu.org/
|
|---|
| 82 | 2. http://gcc.gnu.org/gcc-3.3/changes.html
|
|---|
| 83 | 3. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
|
|---|
| 84 | 4. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.3
|
|---|
| 85 | 5. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.2
|
|---|
| 86 | 6. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.1
|
|---|
| 87 | 7. http://gcc.gnu.org/gcc-3.3/changes.html
|
|---|
| 88 | 8. http://gcc.gnu.org/gcc-3.3/buildstat.html
|
|---|
| 89 | 9. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
|
|---|
| 90 | 10. http://gcc.gnu.org/index.html
|
|---|
| 91 | 11. mailto:[email protected]
|
|---|
| 92 | 12. http://gcc.gnu.org/mirrors.html
|
|---|
| 93 | 13. http://www.gnu.org/order/ftp.html
|
|---|
| 94 | 14. http://gcc.gnu.org/cvs.html
|
|---|
| 95 | 15. mailto:[email protected]
|
|---|
| 96 | 16. http://www.gnu.org/home.html#ContactInfo
|
|---|
| 97 | 17. http://gcc.gnu.org/about.html
|
|---|
| 98 | 18. http://gcc.gnu.org/onlinedocs/
|
|---|
| 99 | 19. mailto:[email protected]
|
|---|
| 100 | 20. mailto:[email protected]
|
|---|
| 101 | 21. mailto:[email protected]
|
|---|
| 102 | 22. http://validator.w3.org/check/referer
|
|---|
| 103 | ======================================================================
|
|---|
| 104 | http://gcc.gnu.org/gcc-3.3/changes.html
|
|---|
| 105 |
|
|---|
| 106 | GCC 3.3 Release Series
|
|---|
| 107 | Changes, New Features, and Fixes
|
|---|
| 108 |
|
|---|
| 109 | The latest release in the 3.3 release series is [1]GCC 3.3.3.
|
|---|
| 110 |
|
|---|
| 111 | Caveats
|
|---|
| 112 |
|
|---|
| 113 | * The preprocessor no longer accepts multi-line string literals.
|
|---|
| 114 | They were deprecated in 3.0, 3.1, and 3.2.
|
|---|
| 115 | * The preprocessor no longer supports the -A- switch when appearing
|
|---|
| 116 | alone. -A- followed by an assertion is still supported.
|
|---|
| 117 | * Support for all the systems [2]obsoleted in GCC 3.1 has been
|
|---|
| 118 | removed from GCC 3.3. See below for a [3]list of systems which are
|
|---|
| 119 | obsoleted in this release.
|
|---|
| 120 | * Checking for null format arguments has been decoupled from the
|
|---|
| 121 | rest of the format checking mechanism. Programs which use the
|
|---|
| 122 | format attribute may regain this functionality by using the new
|
|---|
| 123 | [4]nonnull function attribute. Note that all functions for which
|
|---|
| 124 | GCC has a built-in format attribute, an appropriate built-in
|
|---|
| 125 | nonnull attribute is also applied.
|
|---|
| 126 | * The DWARF (version 1) debugging format has been deprecated and
|
|---|
| 127 | will be removed in a future version of GCC. Version 2 of the DWARF
|
|---|
| 128 | debugging format will continue to be supported for the foreseeable
|
|---|
| 129 | future.
|
|---|
| 130 | * The C and Objective-C compilers no longer accept the "Naming
|
|---|
| 131 | Types" extension (typedef foo = bar); it was already unavailable
|
|---|
| 132 | in C++. Code which uses it will need to be changed to use the
|
|---|
| 133 | "typeof" extension instead: typedef typeof(bar) foo. (We have
|
|---|
| 134 | removed this extension without a period of deprecation because it
|
|---|
| 135 | has caused the compiler to crash since version 3.0 and no one
|
|---|
| 136 | noticed until very recently. Thus we conclude it is not in
|
|---|
| 137 | widespread use.)
|
|---|
| 138 | * The -traditional C compiler option has been removed. It was
|
|---|
| 139 | deprecated in 3.1 and 3.2. (Traditional preprocessing remains
|
|---|
| 140 | available.) The <varargs.h> header, used for writing variadic
|
|---|
| 141 | functions in traditional C, still exists but will produce an error
|
|---|
| 142 | message if used.
|
|---|
| 143 | * GCC 3.3.1 automatically places zero-initialized variables in the
|
|---|
| 144 | .bss section on some operating systems. Versions of GNU Emacs up
|
|---|
| 145 | to (and including) 21.3 will not work correctly when using this
|
|---|
| 146 | optimization; you can use -fno-zero-initialized-in-bss to disable
|
|---|
| 147 | it.
|
|---|
| 148 |
|
|---|
| 149 | General Optimizer Improvements
|
|---|
| 150 |
|
|---|
| 151 | * A new scheme for accurately describing processor pipelines, the
|
|---|
| 152 | [5]DFA scheduler, has been added.
|
|---|
| 153 | * Pavel Nejedly, Charles University Prague, has contributed new file
|
|---|
| 154 | format used by the edge coverage profiler (-fprofile-arcs).
|
|---|
| 155 | The new format is robust and diagnoses common mistakes where
|
|---|
| 156 | profiles from different versions (or compilations) of the program
|
|---|
| 157 | are combined resulting in nonsensical profiles and slow code to
|
|---|
| 158 | produced with profile feedback. Additionally this format allows
|
|---|
| 159 | extra data to be gathered. Currently, overall statistics are
|
|---|
| 160 | produced helping optimizers to identify hot spots of a program
|
|---|
| 161 | globally replacing the old intra-procedural scheme and resulting
|
|---|
| 162 | in better code. Note that the gcov tool from older GCC versions
|
|---|
| 163 | will not be able to parse the profiles generated by GCC 3.3 and
|
|---|
| 164 | vice versa.
|
|---|
| 165 | * Jan Hubicka, SuSE Labs, has contributed a new superblock formation
|
|---|
| 166 | pass enabled using -ftracer. This pass simplifies the control flow
|
|---|
| 167 | of functions allowing other optimizations to do better job.
|
|---|
| 168 | He also contributed the function reordering pass
|
|---|
| 169 | (-freorder-functions) to optimize function placement using profile
|
|---|
| 170 | feedback.
|
|---|
| 171 |
|
|---|
| 172 | New Languages and Language specific improvements
|
|---|
| 173 |
|
|---|
| 174 | C/ObjC/C++
|
|---|
| 175 |
|
|---|
| 176 | * The preprocessor now accepts directives within macro arguments. It
|
|---|
| 177 | processes them just as if they had not been within macro
|
|---|
| 178 | arguments.
|
|---|
| 179 | * The separate ISO and traditional preprocessors have been
|
|---|
| 180 | completely removed. The front end handles either type of
|
|---|
| 181 | preprocessed output if necessary.
|
|---|
| 182 | * In C99 mode preprocessor arithmetic is done in the precision of
|
|---|
| 183 | the target's intmax_t, as required by that standard.
|
|---|
| 184 | * The preprocessor can now copy comments inside macros to the output
|
|---|
| 185 | file when the macro is expanded. This feature, enabled using the
|
|---|
| 186 | -CC option, is intended for use by applications which place
|
|---|
| 187 | metadata or directives inside comments, such as lint.
|
|---|
| 188 | * The method of constructing the list of directories to be searched
|
|---|
| 189 | for header files has been revised. If a directory named by a -I
|
|---|
| 190 | option is a standard system include directory, the option is
|
|---|
| 191 | ignored to ensure that the default search order for system
|
|---|
| 192 | directories and the special treatment of system header files are
|
|---|
| 193 | not defeated.
|
|---|
| 194 | * A few more [6]ISO C99 features now work correctly.
|
|---|
| 195 | * A new function attribute, nonnull, has been added which allows
|
|---|
| 196 | pointer arguments to functions to be specified as requiring a
|
|---|
| 197 | non-null value. The compiler currently uses this information to
|
|---|
| 198 | issue a warning when it detects a null value passed in such an
|
|---|
| 199 | argument slot.
|
|---|
| 200 | * A new type attribute, may_alias, has been added. Accesses to
|
|---|
| 201 | objects with types with this attribute are not subjected to
|
|---|
| 202 | type-based alias analysis, but are instead assumed to be able to
|
|---|
| 203 | alias any other type of objects, just like the char type.
|
|---|
| 204 |
|
|---|
| 205 | C++
|
|---|
| 206 |
|
|---|
| 207 | * Type based alias analysis has been implemented for C++ aggregate
|
|---|
| 208 | types.
|
|---|
| 209 |
|
|---|
| 210 | Objective-C
|
|---|
| 211 |
|
|---|
| 212 | * Generate an error if Objective-C objects are passed by value in
|
|---|
| 213 | function and method calls.
|
|---|
| 214 | * When -Wselector is used, check the whole list of selectors at the
|
|---|
| 215 | end of compilation, and emit a warning if a @selector() is not
|
|---|
| 216 | known.
|
|---|
| 217 | * Define __NEXT_RUNTIME__ when compiling for the NeXT runtime.
|
|---|
| 218 | * No longer need to include objc/objc-class.h to compile self calls
|
|---|
| 219 | in class methods (NeXT runtime only).
|
|---|
| 220 | * New -Wundeclared-selector option.
|
|---|
| 221 | * Removed selector bloating which was causing object files to be 10%
|
|---|
| 222 | bigger on average (GNU runtime only).
|
|---|
| 223 | * Using at run time @protocol() objects has been fixed in certain
|
|---|
| 224 | situations (GNU runtime only).
|
|---|
| 225 | * Type checking has been fixed and improved in many situations
|
|---|
| 226 | involving protocols.
|
|---|
| 227 |
|
|---|
| 228 | Java
|
|---|
| 229 |
|
|---|
| 230 | * The java.sql and javax.sql packages now implement the JDBC 3.0
|
|---|
| 231 | (JDK 1.4) API.
|
|---|
| 232 | * The JDK 1.4 assert facility has been implemented.
|
|---|
| 233 | * The bytecode interpreter is now direct threaded and thus faster.
|
|---|
| 234 |
|
|---|
| 235 | Fortran
|
|---|
| 236 |
|
|---|
| 237 | * Fortran improvements are listed in [7]the Fortran documentation.
|
|---|
| 238 |
|
|---|
| 239 | Ada
|
|---|
| 240 |
|
|---|
| 241 | * Ada tasking now works with glibc 2.3.x threading libraries.
|
|---|
| 242 |
|
|---|
| 243 | New Targets and Target Specific Improvements
|
|---|
| 244 |
|
|---|
| 245 | * The following changes have been made to the HP-PA port:
|
|---|
| 246 | + The port now defaults to scheduling for the PA8000 series of
|
|---|
| 247 | processors.
|
|---|
| 248 | + Scheduling support for the PA7300 processor has been added.
|
|---|
| 249 | + The 32-bit port now supports weak symbols under HP-UX 11.
|
|---|
| 250 | + The handling of initializers and finalizers has been improved
|
|---|
| 251 | under HP-UX 11. The 64-bit port no longer uses collect2.
|
|---|
| 252 | + Dwarf2 EH support has been added to the 32-bit linux port.
|
|---|
| 253 | + ABI fixes to correct the passing of small structures by
|
|---|
| 254 | value.
|
|---|
| 255 | * The SPARC, HP-PA, SH4, and x86/pentium ports have been converted
|
|---|
| 256 | to use the DFA processor pipeline description.
|
|---|
| 257 | * The following NetBSD configurations for the SuperH processor
|
|---|
| 258 | family have been added:
|
|---|
| 259 | + SH3, big-endian, sh-*-netbsdelf*
|
|---|
| 260 | + SH3, little-endian, shle-*-netbsdelf*
|
|---|
| 261 | + SH5, SHmedia, big-endian, 32-bit default, sh5-*-netbsd*
|
|---|
| 262 | + SH5, SHmedia, little-endian, 32-bit default, sh5le-*-netbsd*
|
|---|
| 263 | + SH5, SHmedia, big-endian, 64-bit default, sh64-*-netbsd*
|
|---|
| 264 | + SH5, SHmedia, little-endian, 64-bit default, sh64le-*-netbsd*
|
|---|
| 265 | * The following changes have been made to the IA-32/x86-64 port:
|
|---|
| 266 | + SSE2 and 3dNOW! intrinsics are now supported.
|
|---|
| 267 | + Support for thread local storage has been added to the IA-32
|
|---|
| 268 | and x86-64 ports.
|
|---|
| 269 | + The x86-64 port has been significantly improved.
|
|---|
| 270 | * The following changes have been made to the MIPS port:
|
|---|
| 271 | + All configurations now accept the -mabi switch. Note that you
|
|---|
| 272 | will need appropriate multilibs for this option to work
|
|---|
| 273 | properly.
|
|---|
| 274 | + ELF configurations will always pass an ABI flag to the
|
|---|
| 275 | assembler, except when the MIPS EABI is selected.
|
|---|
| 276 | + -mabi=64 no longer selects MIPS IV code.
|
|---|
| 277 | + The -mcpu option, which was deprecated in 3.1 and 3.2, has
|
|---|
| 278 | been removed from this release.
|
|---|
| 279 | + -march now changes the core ISA level. In previous releases,
|
|---|
| 280 | it would change the use of processor-specific extensions, but
|
|---|
| 281 | would leave the core ISA unchanged. For example, mips64-elf
|
|---|
| 282 | -march=r8000 will now generate MIPS IV code.
|
|---|
| 283 | + Under most configurations, -mipsN now acts as a synonym for
|
|---|
| 284 | -march.
|
|---|
| 285 | + There are some new preprocessor macros to describe the -march
|
|---|
| 286 | and -mtune settings. See the documentation of those options
|
|---|
| 287 | for details.
|
|---|
| 288 | + Support for the NEC VR-Series processors has been added. This
|
|---|
| 289 | includes the 54xx, 5500, and 41xx series.
|
|---|
| 290 | + Support for the Sandcraft sr71k processor has been added.
|
|---|
| 291 | * The following changes have been made to the S/390 port:
|
|---|
| 292 | + Support to build the Java runtime libraries has been added.
|
|---|
| 293 | Java is now enabled by default on s390-*-linux* and
|
|---|
| 294 | s390x-*-linux* targets.
|
|---|
| 295 | + Multilib support for the s390x-*-linux* target has been
|
|---|
| 296 | added; this allows to build 31-bit binaries using the -m31
|
|---|
| 297 | option.
|
|---|
| 298 | + Support for thread local storage has been added.
|
|---|
| 299 | + Inline assembler code may now use the 'Q' constraint to
|
|---|
| 300 | specify memory operands without index register.
|
|---|
| 301 | + Various platform-specific performance improvements have been
|
|---|
| 302 | implemented; in particular, the compiler now uses the BRANCH
|
|---|
| 303 | ON COUNT family of instructions and makes more frequent use
|
|---|
| 304 | of the TEST UNDER MASK family of instructions.
|
|---|
| 305 | * The following changes have been made to the PowerPC port:
|
|---|
| 306 | + Support for IBM Power4 processor added.
|
|---|
| 307 | + Support for Motorola e500 SPE added.
|
|---|
| 308 | + Support for AIX 5.2 added.
|
|---|
| 309 | + Function and Data sections now supported on AIX.
|
|---|
| 310 | + Sibcall optimizations added.
|
|---|
| 311 | * The support for H8 Tiny is added to the H8/300 port with -mn.
|
|---|
| 312 |
|
|---|
| 313 | Obsolete Systems
|
|---|
| 314 |
|
|---|
| 315 | Support for a number of older systems has been declared obsolete in
|
|---|
| 316 | GCC 3.3. Unless there is activity to revive them, the next release of
|
|---|
| 317 | GCC will have their sources permanently removed.
|
|---|
| 318 |
|
|---|
| 319 | All configurations of the following processor architectures have been
|
|---|
| 320 | declared obsolete:
|
|---|
| 321 | * Matsushita MN10200, mn10200-*-*
|
|---|
| 322 | * Motorola 88000, m88k-*-*
|
|---|
| 323 | * IBM ROMP, romp-*-*
|
|---|
| 324 |
|
|---|
| 325 | Also, some individual systems have been obsoleted:
|
|---|
| 326 | * Alpha
|
|---|
| 327 | + Interix, alpha*-*-interix*
|
|---|
| 328 | + Linux libc1, alpha*-*-linux*libc1*
|
|---|
| 329 | + Linux ECOFF, alpha*-*-linux*ecoff*
|
|---|
| 330 | * ARM
|
|---|
| 331 | + Generic a.out, arm*-*-aout*
|
|---|
| 332 | + Conix, arm*-*-conix*
|
|---|
| 333 | + "Old ABI," arm*-*-oabi
|
|---|
| 334 | + StrongARM/COFF, strongarm-*-coff*
|
|---|
| 335 | * HPPA (PA-RISC)
|
|---|
| 336 | + Generic OSF, hppa1.0-*-osf*
|
|---|
| 337 | + Generic BSD, hppa1.0-*-bsd*
|
|---|
| 338 | + HP/UX versions 7, 8, and 9, hppa1.[01]-*-hpux[789]*
|
|---|
| 339 | + HiUX, hppa*-*-hiux*
|
|---|
| 340 | + Mach Lites, hppa*-*-lites*
|
|---|
| 341 | * Intel 386 family
|
|---|
| 342 | + Windows NT 3.x, i?86-*-win32
|
|---|
| 343 | * MC68000 family
|
|---|
| 344 | + HP systems, m68000-hp-bsd* and m68k-hp-bsd*
|
|---|
| 345 | + Sun systems, m68000-sun-sunos*, m68k-sun-sunos*, and
|
|---|
| 346 | m68k-sun-mach*
|
|---|
| 347 | + AT&T systems, m68000-att-sysv*
|
|---|
| 348 | + Atari systems, m68k-atari-sysv*
|
|---|
| 349 | + Motorola systems, m68k-motorola-sysv*
|
|---|
| 350 | + NCR systems, m68k-ncr-sysv*
|
|---|
| 351 | + Plexus systems, m68k-plexus-sysv*
|
|---|
| 352 | + Commodore systems, m68k-cbm-sysv*
|
|---|
| 353 | + Citicorp TTI, m68k-tti-*
|
|---|
| 354 | + Unos, m68k-crds-unos*
|
|---|
| 355 | + Concurrent RTU, m68k-ccur-rtu*
|
|---|
| 356 | + Linux a.out, m68k-*-linux*aout*
|
|---|
| 357 | + Linux libc1, m68k-*-linux*libc1*
|
|---|
| 358 | + pSOS, m68k-*-psos*
|
|---|
| 359 | * MIPS
|
|---|
| 360 | + Generic ECOFF, mips*-*-ecoff*
|
|---|
| 361 | + SINIX, mips-sni-sysv4
|
|---|
| 362 | + Orion RTEMS, mips64orion-*-rtems*
|
|---|
| 363 | * National Semiconductor 32000
|
|---|
| 364 | + OpenBSD, ns32k-*-openbsd*
|
|---|
| 365 | * POWER (aka RS/6000) and PowerPC
|
|---|
| 366 | + AIX versions 1, 2, and 3, rs6000-ibm-aix[123]*
|
|---|
| 367 | + Bull BOSX, rs6000-bull-bosx
|
|---|
| 368 | + Generic Mach, rs6000-*-mach*
|
|---|
| 369 | + Generic SysV, powerpc*-*-sysv*
|
|---|
| 370 | + Linux libc1, powerpc*-*-linux*libc1*
|
|---|
| 371 | * Sun SPARC
|
|---|
| 372 | + Generic a.out, sparc-*-aout*, sparclet-*-aout*,
|
|---|
| 373 | sparclite-*-aout*, and sparc86x-*-aout*
|
|---|
| 374 | + NetBSD a.out, sparc-*-netbsd*aout*
|
|---|
| 375 | + Generic BSD, sparc-*-bsd*
|
|---|
| 376 | + ChorusOS, sparc-*-chorusos*
|
|---|
| 377 | + Linux a.out, sparc-*-linux*aout*
|
|---|
| 378 | + Linux libc1, sparc-*-linux*libc1*
|
|---|
| 379 | + LynxOS, sparc-*-lynxos*
|
|---|
| 380 | + Solaris on HAL hardware, sparc-hal-solaris2*
|
|---|
| 381 | + SunOS versions 3 and 4, sparc-*-sunos[34]*
|
|---|
| 382 | * NEC V850
|
|---|
| 383 | + RTEMS, v850-*-rtems*
|
|---|
| 384 | * VAX
|
|---|
| 385 | + VMS, vax-*-vms*
|
|---|
| 386 |
|
|---|
| 387 | Documentation improvements
|
|---|
| 388 |
|
|---|
| 389 | Other significant improvements
|
|---|
| 390 |
|
|---|
| 391 | * Almost all front-end dependencies in the compiler have been
|
|---|
| 392 | separated out into a set of language hooks. This should make
|
|---|
| 393 | adding a new front end clearer and easier.
|
|---|
| 394 | * One effect of removing the separate preprocessor is a small
|
|---|
| 395 | increase in the robustness of the compiler in general, and the
|
|---|
| 396 | maintainability of target descriptions. Previously target-specific
|
|---|
| 397 | built-in macros and others, such as __FAST_MATH__, had to be
|
|---|
| 398 | handled with so-called specs that were hard to maintain. Often
|
|---|
| 399 | they would fail to behave properly when conflicting options were
|
|---|
| 400 | supplied on the command line, and define macros in the user's
|
|---|
| 401 | namespace even when strict ISO compliance was requested.
|
|---|
| 402 | Integrating the preprocessor has cleanly solved these issues.
|
|---|
| 403 | * The Makefile suite now supports redirection of make install by
|
|---|
| 404 | means of the variable DESTDIR.
|
|---|
| 405 | _________________________________________________________________
|
|---|
| 406 |
|
|---|
| 407 | GCC 3.3
|
|---|
| 408 |
|
|---|
| 409 | Detailed release notes for the GCC 3.3 release follow.
|
|---|
| 410 |
|
|---|
| 411 | Bug Fixes
|
|---|
| 412 |
|
|---|
| 413 | bootstrap failures
|
|---|
| 414 |
|
|---|
| 415 | * [8]10140 cross compiler build failures: missing __mempcpy (DUP:
|
|---|
| 416 | [9]10198,[10]10338)
|
|---|
| 417 |
|
|---|
| 418 | Internal compiler errors (multi-platform)
|
|---|
| 419 |
|
|---|
| 420 | * [11]3581 large string causes segmentation fault in cc1
|
|---|
| 421 | * [12]4382 __builtin_{set,long}jmp with -O3 can crash the compiler
|
|---|
| 422 | * [13]5533 (c++) ICE when processing std::accumulate(begin, end,
|
|---|
| 423 | init, invalid_op)
|
|---|
| 424 | * [14]6387 -fpic -gdwarf-2 -g1 combination gives ICE in dwarf2out
|
|---|
| 425 | * [15]6412 (c++) ICE in retrieve_specialization
|
|---|
| 426 | * [16]6620 (c++) partial template specialization causes an ICE
|
|---|
| 427 | (segmentation fault)
|
|---|
| 428 | * [17]6663 (c++) ICE with attribute aligned
|
|---|
| 429 | * [18]7068 ICE with incomplete types
|
|---|
| 430 | * [19]7083 (c++) ICE using -gstabs with dodgy class derivation
|
|---|
| 431 | * [20]7647 (c++) ICE when data member has the name of the enclosing
|
|---|
| 432 | class
|
|---|
| 433 | * [21]7675 ICE in fixup_var_refs_1
|
|---|
| 434 | * [22]7718 'complex' template instantiation causes ICE
|
|---|
| 435 | * [23]8116 (c++) ICE in member template function
|
|---|
| 436 | * [24]8358 (ada) Ada compiler accesses freed memory, crashes
|
|---|
| 437 | * [25]8511 (c++) ICE: (hopefully) reproducible cc1plus segmentation
|
|---|
| 438 | fault
|
|---|
| 439 | * [26]8564 (c++) ICE in find_function_data, in function.c
|
|---|
| 440 | * [27]8660 (c++) template overloading ICE in tsubst_expr, in cp/pt.c
|
|---|
| 441 | * [28]8766 (c++) ICE after failed initialization of static template
|
|---|
| 442 | variable
|
|---|
| 443 | * [29]8803 ICE in instantiate_virtual_regs_1, in function.c
|
|---|
| 444 | * [30]8846 (c++) ICE after diagnostic if fr_FR@euro locale is set
|
|---|
| 445 | * [31]8906 (c++) ICE (Segmentation fault) when parsing nested-class
|
|---|
| 446 | definition
|
|---|
| 447 | * [32]9216 (c++) ICE on missing template parameter
|
|---|
| 448 | * [33]9261 (c++) ICE in arg_assoc, in cp/decl2.c
|
|---|
| 449 | * [34]9263 (fortran) ICE caused by invalid PARAMETER in implied DO
|
|---|
| 450 | loop
|
|---|
| 451 | * [35]9429 (c++) ICE in template instantiation with a pointered new
|
|---|
| 452 | operator
|
|---|
| 453 | * [36]9516 Internal error when using a big array
|
|---|
| 454 | * [37]9600 (c++) ICE with typedefs in template class
|
|---|
| 455 | * [38]9629 (c++) virtual inheritance segfault
|
|---|
| 456 | * [39]9672 (c++) ICE: Error reporting routines re-entered
|
|---|
| 457 | * [40]9749 (c++) ICE in write_expression on invalid function
|
|---|
| 458 | prototype
|
|---|
| 459 | * [41]9794 (fortran) ICE: floating point exception during constant
|
|---|
| 460 | folding
|
|---|
| 461 | * [42]9829 (c++) Missing colon in nested namespace usage causes ICE
|
|---|
| 462 | * [43]9916 (c++) ICE with noreturn function in ?: statement
|
|---|
| 463 | * [44]9936 ICE with local function and variable-length 2d array
|
|---|
| 464 | * [45]10262 (c++) cc1plus crashes with large generated code
|
|---|
| 465 | * [46]10278 (c++) ICE in parser for invalid code
|
|---|
| 466 | * [47]10446 (c++) ICE on definition of nonexistent member function
|
|---|
| 467 | of nested class in a class template
|
|---|
| 468 | * [48]10451 (c++) ICE in grokdeclarator on spurious mutable
|
|---|
| 469 | declaration
|
|---|
| 470 | * [49]10506 (c++) ICE in build_new at cp/init.c with
|
|---|
| 471 | -fkeep-inline-functions and multiple inheritance
|
|---|
| 472 | * [50]10549 (c++) ICE in store_bit_field on bitfields that exceed
|
|---|
| 473 | the precision of the declared type
|
|---|
| 474 |
|
|---|
| 475 | Optimization bugs
|
|---|
| 476 |
|
|---|
| 477 | * [51]2001 Inordinately long compile times in reload CSE regs
|
|---|
| 478 | * [52]2391 Exponential compilation time explosion in combine
|
|---|
| 479 | * [53]2960 Duplicate loop conditions even with -Os
|
|---|
| 480 | * [54]4046 redundant conditional branch
|
|---|
| 481 | * [55]6405 Loop-unrolling related performance regressions
|
|---|
| 482 | * [56]6798 very long compile time with large case-statement
|
|---|
| 483 | * [57]6871 const objects shouldn't be moved to .bss
|
|---|
| 484 | * [58]6909 problem w/ -Os on modified loop-2c.c test case
|
|---|
| 485 | * [59]7189 gcc -O2 -Wall does not print ``control reaches end of
|
|---|
| 486 | non-void function'' warning
|
|---|
| 487 | * [60]7642 optimization problem with signbit()
|
|---|
| 488 | * [61]8634 incorrect code for inlining of memcpy under -O2
|
|---|
| 489 | * [62]8750 Cygwin prolog generation erroneously emitting __alloca as
|
|---|
| 490 | regular function call
|
|---|
| 491 |
|
|---|
| 492 | C front end
|
|---|
| 493 |
|
|---|
| 494 | * [63]2161 long if-else cascade overflows parser stack
|
|---|
| 495 | * [64]4319 short accepted on typedef'd char
|
|---|
| 496 | * [65]8602 incorrect line numbers in warning messages when using
|
|---|
| 497 | inline functions
|
|---|
| 498 | * [66]9177 -fdump-translation-unit: C front end deletes
|
|---|
| 499 | function_decl AST nodes and breaks debugging dumps
|
|---|
| 500 | * [67]9853 miscompilation of non-constant structure initializer
|
|---|
| 501 |
|
|---|
| 502 | c++ compiler and library
|
|---|
| 503 |
|
|---|
| 504 | * [68]45 legal template specialization code is rejected (DUP:
|
|---|
| 505 | [69]3784)
|
|---|
| 506 | * [70]764 lookup failure: friend operator and dereferencing a
|
|---|
| 507 | pointer and templates (DUP: [71]5116)
|
|---|
| 508 | * [72]2862 gcc accepts invalid explicit instantiation syntax (DUP:
|
|---|
| 509 | 2863)
|
|---|
| 510 | * [73]3663 G++ doesn't check access control during template
|
|---|
| 511 | instantiation
|
|---|
| 512 | * [74]3797 gcc fails to emit explicit specialization of a template
|
|---|
| 513 | member
|
|---|
| 514 | * [75]3948 Two destructors are called when no copy destructor is
|
|---|
| 515 | defined (ABI change)
|
|---|
| 516 | * [76]4137 Conversion operator within template is not accepted
|
|---|
| 517 | * [77]4361 bogus ambiguity taking the address of a member template
|
|---|
| 518 | * [78]4802 g++ accepts illegal template code (access to private
|
|---|
| 519 | member; DUP: [79]5837)
|
|---|
| 520 | * [80]4803 inline function is used but never defined, and g++ does
|
|---|
| 521 | not object
|
|---|
| 522 | * [81]5094 Partial specialization cannot be friend?
|
|---|
| 523 | * [82]5730 complex<double>::norm() -- huge slowdown from
|
|---|
| 524 | egcs-2.91.66
|
|---|
| 525 | * [83]6713 Regression wrt 3.0.4: g++ -O2 leads to seg fault at run
|
|---|
| 526 | time
|
|---|
| 527 | * [84]7015 certain __asm__ constructs rejected
|
|---|
| 528 | * [85]7086 compile time regression (quadratic behavior in
|
|---|
| 529 | fixup_var_refs)
|
|---|
| 530 | * [86]7099 G++ doesn't set the noreturn attribute on std::exit and
|
|---|
| 531 | std::abort
|
|---|
| 532 | * [87]7247 copy constructor missing when inlining enabled (invalid
|
|---|
| 533 | optimization?)
|
|---|
| 534 | * [88]7441 string array initialization compilation time regression
|
|---|
| 535 | from seconds to minutes
|
|---|
| 536 | * [89]7768 __PRETTY_FUNCTION__ for template destructor is wrong
|
|---|
| 537 | * [90]7804 bad printing of floating point constant in warning
|
|---|
| 538 | message
|
|---|
| 539 | * [91]8099 Friend classes and template specializations
|
|---|
| 540 | * [92]8117 member function pointers and multiple inheritance
|
|---|
| 541 | * [93]8205 using declaration and multiple inheritance
|
|---|
| 542 | * [94]8645 unnecessary non-zero checks in stl_tree.h
|
|---|
| 543 | * [95]8724 explicit destructor call for incomplete class allowed
|
|---|
| 544 | * [96]8805 compile time regression with many member variables
|
|---|
| 545 | * [97]8691 -O3 and -fno-implicit-templates are incompatible
|
|---|
| 546 | * [98]8700 unhelpful error message for binding temp to reference
|
|---|
| 547 | * [99]8724 explicit destructor call for incomplete class allowed
|
|---|
| 548 | * [100]8949 numeric_limits<>::denorm_min() and is_iec559 problems
|
|---|
| 549 | * [101]9016 Failure to consistently constant fold "constant" C++
|
|---|
| 550 | objects
|
|---|
| 551 | * [102]9053 g++ confused about ambiguity of overloaded function
|
|---|
| 552 | templates
|
|---|
| 553 | * [103]9152 undefined virtual thunks
|
|---|
| 554 | * [104]9182 basic_filebuf<> does not report errors in codecvt<>::out
|
|---|
| 555 | * [105]9297 data corruption due to codegen bug (when copying.)
|
|---|
| 556 | * [106]9318 i/ostream::operator>>/<<(streambuf*) broken
|
|---|
| 557 | * [107]9320 Incorrect usage of traits_type::int_type in
|
|---|
| 558 | stdio_filebuf
|
|---|
| 559 | * [108]9400 bogus -Wshadow warning: shadowed declaration of this in
|
|---|
| 560 | local classes
|
|---|
| 561 | * [109]9424 i/ostream::operator>>/<<(streambuf*) drops characters
|
|---|
| 562 | * [110]9425 filebuf::pbackfail broken (DUP: [111]9439)
|
|---|
| 563 | * [112]9474 GCC freezes in compiling a weird code mixing <iostream>
|
|---|
| 564 | and <iostream.h>
|
|---|
| 565 | * [113]9548 Incorrect results from setf(ios::fixed) and
|
|---|
| 566 | precision(-1) [114][DR 231]
|
|---|
| 567 | * [115]9555 ostream inserters fail to set badbit on exception
|
|---|
| 568 | * [116]9561 ostream inserters rethrow exception of wrong type
|
|---|
| 569 | * [117]9563 ostream::sentry returns true after a failed preparation
|
|---|
| 570 | * [118]9582 one-definition rule violation in std::allocator
|
|---|
| 571 | * [119]9622 __PRETTY_FUNCTION__ incorrect in template destructors
|
|---|
| 572 | * [120]9683 bug in initialization chains for static const variables
|
|---|
| 573 | from template classes
|
|---|
| 574 | * [121]9791 -Woverloaded-virtual reports hiding of destructor
|
|---|
| 575 | * [122]9817 collate::compare doesn't handle nul characters
|
|---|
| 576 | * [123]9825 filebuf::sputbackc breaks sbumpc
|
|---|
| 577 | * [124]9826 operator>>(basic_istream, basic_string) fails to compile
|
|---|
| 578 | with custom traits
|
|---|
| 579 | * [125]9924 Multiple using statements for builtin functions not
|
|---|
| 580 | allowed
|
|---|
| 581 | * [126]9946 destructor is not called for temporary object
|
|---|
| 582 | * [127]9964 filebuf::close() sometimes fails to close file
|
|---|
| 583 | * [128]9988 filebuf::overflow writes EOF to file
|
|---|
| 584 | * [129]10033 optimization breaks polymorphic references w/ typeid
|
|---|
| 585 | operator
|
|---|
| 586 | * [130]10097 filebuf::underflow drops characters
|
|---|
| 587 | * [131]10132 filebuf destructor can throw exceptions
|
|---|
| 588 | * [132]10180 gcc fails to warn about non-inlined function
|
|---|
| 589 | * [133]10199 method parametrized by template does not work
|
|---|
| 590 | everywhere
|
|---|
| 591 | * [134]10300 use of array-new (nothrow) in segfaults on NULL return
|
|---|
| 592 | * [135]10427 Stack corruption with variable-length automatic arrays
|
|---|
| 593 | and virtual destructors
|
|---|
| 594 | * [136]10503 Compilation never stops in fixed_type_or_null
|
|---|
| 595 |
|
|---|
| 596 | Objective-C
|
|---|
| 597 |
|
|---|
| 598 | * [137]5956 selectors aren't matched properly when added to the
|
|---|
| 599 | selector table
|
|---|
| 600 |
|
|---|
| 601 | Fortran compiler and library
|
|---|
| 602 |
|
|---|
| 603 | * [138]1832 list directed i/o overflow hangs, -fbounds-check doesn't
|
|---|
| 604 | detect
|
|---|
| 605 | * [139]3924 g77 generates code that is rejected by GAS if COFF debug
|
|---|
| 606 | info requested
|
|---|
| 607 | * [140]5634 doc: explain that configure --prefix=~/... does not work
|
|---|
| 608 | * [141]6367 multiple repeat counts confuse namelist read into array
|
|---|
| 609 | * [142]6491 Logical operations error on logicals when using
|
|---|
| 610 | -fugly-logint
|
|---|
| 611 | * [143]6742 Generation of C++ Prototype for FORTRAN and extern "C"
|
|---|
| 612 | * [144]7113 Failure of g77.f-torture/execute/f90-intrinsic-bit.f -Os
|
|---|
| 613 | on irix6.5
|
|---|
| 614 | * [145]7236 OPEN(...,RECL=nnn,...) without ACCESS='DIRECT' should
|
|---|
| 615 | assume a direct access file
|
|---|
| 616 | * [146]7278 g77 "bug"; the executable misbehaves (with -O2
|
|---|
| 617 | -fno-automatic)
|
|---|
| 618 | * [147]7384 DATE_AND_TIME milliseconds field inactive on Windows
|
|---|
| 619 | * [148]7388 Incorrect output with 0-based array of characters
|
|---|
| 620 | * [149]8587 Double complex zero ** double precision number -> NaN
|
|---|
| 621 | instead of zero
|
|---|
| 622 | * [150]9038 -ffixed-line-length-none -x f77-cpp-input gives:
|
|---|
| 623 | Warning: unknown register name line-length-none
|
|---|
| 624 | * [151]10197 Direct access files not unformatted by default
|
|---|
| 625 |
|
|---|
| 626 | Java compiler and library
|
|---|
| 627 |
|
|---|
| 628 | * [152]6005 gcj fails to build rhug on alpha
|
|---|
| 629 | * [153]6389 System.getProperty("") should always throw an
|
|---|
| 630 | IllegalArgumentException
|
|---|
| 631 | * [154]6576 java.util.ResourceBundle.getResource ignores locale
|
|---|
| 632 | * [155]6652 new java.io.File("").getCanonicalFile() throws exception
|
|---|
| 633 | * [156]7060 getMethod() doesn't search super interface
|
|---|
| 634 | * [157]7073 bytecode interpreter gives wrong answer for interface
|
|---|
| 635 | getSuperclass()
|
|---|
| 636 | * [158]7180 possible bug in
|
|---|
| 637 | javax.naming.spi.NamingManager.getPlusPath()
|
|---|
| 638 | * [159]7416 java.security startup refs "GNU libgcj.security"
|
|---|
| 639 | * [160]7570 Runtime.exec with null envp: child doesn't inherit
|
|---|
| 640 | parent env (DUP: [161]7578)
|
|---|
| 641 | * [162]7611 Internal error while compiling libjava with -O
|
|---|
| 642 | * [163]7709 NullPointerException in _Jv_ResolvePoolEntry
|
|---|
| 643 | * [164]7766 ZipInputStream.available returns 0 immediately after
|
|---|
| 644 | construction
|
|---|
| 645 | * [165]7785 Calendar.getTimeInMillis/setTimeInMillis should be
|
|---|
| 646 | public
|
|---|
| 647 | * [166]7786 TimeZone.getDSTSavings() from JDK1.4 not implemented
|
|---|
| 648 | * [167]8142 '$' in class names vs. dlopen 'dynamic string tokens'
|
|---|
| 649 | * [168]8234 ZipInputStream chokes when InputStream.read() returns
|
|---|
| 650 | small chunks
|
|---|
| 651 | * [169]8415 reflection bug: exception info for Method
|
|---|
| 652 | * [170]8481 java.Random.nextInt(int) may return negative
|
|---|
| 653 | * [171]8593 Error reading GZIPped files with BufferedReader
|
|---|
| 654 | * [172]8759 java.beans.Introspector has no flushCaches() or
|
|---|
| 655 | flushFromCaches() methods
|
|---|
| 656 | * [173]8997 spin() calls Thread.sleep
|
|---|
| 657 | * [174]9253 on win32, java.io.File.listFiles("C:\\") returns pwd
|
|---|
| 658 | instead of the root content of C:
|
|---|
| 659 | * [175]9254 java::lang::Object::wait(), threads-win32.cc returns
|
|---|
| 660 | wrong return codes
|
|---|
| 661 | * [176]9271 Severe bias in java.security.SecureRandom
|
|---|
| 662 |
|
|---|
| 663 | Ada compiler and library
|
|---|
| 664 |
|
|---|
| 665 | * [177]6767 make gnatlib-shared fails on -laddr2line
|
|---|
| 666 | * [178]9911 gnatmake fails to link when GCC configured with
|
|---|
| 667 | --with-sjlj-exceptions=yes
|
|---|
| 668 | * [179]10020 Can't bootstrap gcc on AIX with Ada enabled
|
|---|
| 669 | * [180]10546 Ada tasking not working on Red Hat 9
|
|---|
| 670 |
|
|---|
| 671 | preprocessor
|
|---|
| 672 |
|
|---|
| 673 | * [181]7029 preprocessor should ignore #warning with -M
|
|---|
| 674 |
|
|---|
| 675 | ARM-specific
|
|---|
| 676 |
|
|---|
| 677 | * [182]2903 [arm] Optimization bug with long long arithmetic
|
|---|
| 678 | * [183]7873 arm-linux-gcc fails when assigning address to a bit
|
|---|
| 679 | field
|
|---|
| 680 |
|
|---|
| 681 | FreeBSD-specific
|
|---|
| 682 |
|
|---|
| 683 | * [184]7680 float functions undefined in math.h/cmath with #define
|
|---|
| 684 | _XOPEN_SOURCE
|
|---|
| 685 |
|
|---|
| 686 | HP-UX or HP-PA-specific
|
|---|
| 687 |
|
|---|
| 688 | * [185]8705 [HP-PA] ICE in emit_move_insn_1, in expr.c
|
|---|
| 689 | * [186]9986 [HP-UX] Incorrect transformation of fputs_unlocked to
|
|---|
| 690 | fputc_unlocked
|
|---|
| 691 | * [187]10056 [HP-PA] ICE at -O2 when building c++ code from doxygen
|
|---|
| 692 |
|
|---|
| 693 | m68hc11-specific
|
|---|
| 694 |
|
|---|
| 695 | * [188]6744 Bad assembler code generated: reference to pseudo
|
|---|
| 696 | register z
|
|---|
| 697 | * [189]7361 Internal compiler error in reload_cse_simplify_operands,
|
|---|
| 698 | in reload1.c
|
|---|
| 699 |
|
|---|
| 700 | MIPS-specific
|
|---|
| 701 |
|
|---|
| 702 | * [190]9496 [mips-linux] bug in optimizer?
|
|---|
| 703 |
|
|---|
| 704 | PowerPC-specific
|
|---|
| 705 |
|
|---|
| 706 | * [191]7067 -Os with -mcpu=powerpc optimizes for speed (?) instead
|
|---|
| 707 | of space
|
|---|
| 708 | * [192]8480 reload ICEs for LAPACK code on powerpc64-linux
|
|---|
| 709 | * [193]8784 [AIX] Internal compiler error in simplify_gen_subreg
|
|---|
| 710 | * [194]10315 [powerpc] ICE: in extract_insn, in recog.c
|
|---|
| 711 |
|
|---|
| 712 | SPARC-specific
|
|---|
| 713 |
|
|---|
| 714 | * [195]10267 (documentation) Wrong build instructions for
|
|---|
| 715 | *-*-solaris2*
|
|---|
| 716 |
|
|---|
| 717 | x86-specific (Intel/AMD)
|
|---|
| 718 |
|
|---|
| 719 | * [196]7916 ICE in instantiate_virtual_register_1
|
|---|
|
|---|