GCC 3.3.2 dans les bacs

Posté par  (site web personnel) . Modéré par Nÿco.
Étiquettes :
0
21
oct.
2003
GNU
Le dernier GCC (GNU Compiler Collection) est disponible depuis quelques jours. Il apporte un nombre assez conséquent de corrections de bootstrap, de cross-compiling et optimisations.

Je rappelle que GCC 3.3 laissera bientôt la place au très attendu GCC 3.4 qui apportera un beau lot de nouveautés.

À signaler également que Mandrake et SuSE livrent GCC 3.3.2 comme compilateur standard de leurs distributions.

La liste de correction de bugs est disponible dans le détail de cette nouvelle. Bug Fixes
---------------

Bootstrap failures and problems

* 8336 [SCO5] bootstrap config still tries to use COFF options
* 9330 [alpha-osf] Bootstrap failure on Compaq Tru64 with --enable-threads=posix
* 9631 [hppa64-linux] gcc-3.3 fails to bootstrap
* 9877 fixincludes makes a bad sys/byteorder.h on svr5 (UnixWare 7.1.1)
* 11687 xstormy16-elf build fails in libf2c
* 12263 [SGI IRIX] bootstrap fails during compile of libf2c/libI77/backspace.c
* 12490 buffer overflow in scan-decls.c (during Solaris 9 fix-header processing)

Internal compiler errors (multi-platform)

* 7277 Casting integers to vector types causes ICE
* 7939 (c++) ICE on invalid function template specialization
* 11063 (c++) ICE on parsing initialization list of const array member
* 11207 ICE with negative index in array element designator
* 11522 (fortran) g77 dwarf-2 ICE in add_abstract_origin_attribute
* 11595 (c++) ICE on duplicate label definition
* 11646 (c++) ICE in commit_one_edge_insertion with -fnon-call-exceptions -fgcse -O
* 11665 ICE in struct initializer when taking address
* 11852 (c++) ICE with bad struct initializer.
* 11878 (c++) ICE in cp_expr_size
* 11883 ICE with any -O on mercury-generated C code
* 11991 (c++) ICE in cxx_incomplete_type_diagnostic, in cp/typeck2.c when applying typeid operator to template template parameter
* 12146 ICE in lookup_template_function, in cp/pt.c
* 12215 ICE in make_label_edge with -fnon-call-exceptions -fno-gcse -O2
* 12369 (c++) ICE with templates and friends
* 12446 ICE in emit_move_insn on complicated array reference
* 12510 ICE in final_scan_insn
* 12544 ICE with large parameters used in nested functions

C and optimization bugs

* 9862 spurious warnings with -W -finline-functions
* 10962 lookup_field is a linear search on a linked list (can be slow if large struct)
* 11370 -Wunreachable-code gives false complaints
* 11637 invalid assembly with -fnon-call-exceptions
* 11885 Problem with bitfields in packed structs
* 12082 Inappropriate unreachable code warnings
* 12180 Inline optimization fails for variadic function
* 12340 loop unroller + gcse produces wrong code

C++ compiler and library

* 3907 nested template parameter collides with member name
* 5293 confusing message when binding a temporary to a reference
* 5296 [DR115] Pointers to functions and to template functions behave differently in deduction
* 7939 ICE on function template specialization
* 8656 Unable to assign function with __attribute__ and pointer return type to an appropriate variable
* 10147 Confusing error message for invalid template function argument
* 11400 std::search_n() makes assumptions about Size parameter
* 11409 issues with using declarations, overloading, and built-in functions
* 11740 ctype::do_is(mask, wchar_t) doesn't handle multiple bits in mask
* 11786 operator() call on variable in other namespace not recognized
* 11867 static_cast ignores ambiguity
* 11928 bug with conversion operators that are typedefs
* 12163 static_cast + explicit constructor regression
* 12181 Wrong code with comma operator and c++
* 12236 regparm and fastcall messes up parameters
* 12266 incorrect instantiation of unneeded template during overload resolution
* 12296 istream::peek() doesn't set eofbit
* 12298 [sjlj exceptions] Stack unwind destroys not-yet-constructed object
* 12369 ICE with templates and friends
* 12337 apparently infinite loop in g++
* 12344 stdcall attribute ignored if function returns a pointer
* 12451 missing(late) class forward declaration in cxxabi.h
* 12486 g++ accepts invalid use of a qualified name

x86 specific (Intel/AMD)

* 8869 [x86 MMX] ICE with const variable optimization and MMX builtins
* 9786 ICE in fixup_abnormal_edges with -fnon-call-exceptions -O2
* 11689 g++3.3 emits un-assembleable code for k6 architecture
* 12116 [k6] Invalid assembly output values with X-MAME code
* 12070 ICE converting between double and long double with -msoft-float

ia64-specific

* 11184 [ia64 hpux] ICE on __builtin_apply building libobjc
* 11535 __builtin_return_address may not work on ia64
* 11693 [ia64] ICE in gen_nop_type
* 12224 [ia64] Thread-local storage doesn't work

PowerPC-specific

* 11087 [powerpc64-linux] GCC miscompiles raid1.c from linux kernel
* 11319 loop miscompiled on ppc32
* 11949 ICE Compiler segfault with ffmpeg -maltivec code

SPARC-specific

* 11662 wrong code for expr. with cast to long long and exclusive or
* 11965 invalid assembler code for a shift < 32 operation
* 12301 (c++) stack corruption when a returned expression throws an exception

Alpha-specific

* 11717 [alpha-linux] unrecognizable insn compiling for.c of kernel 2.4.22-pre8

HPUX-specific

* 11313 problem with #pragma weak and static inline functions
* 11712 __STDC_EXT__ not defined for C++ by default anymore?

Solaris specific

* 12166 Profiled programs crash if PROFDIR is set

Solaris-x86 specific

* 12101 i386 Solaris no longer works with GNU as?

Miscellaneous embedded target-specific bugs

* 10988 [m32r-elf] wrong blockmove code with -O3
* 11805 [h8300-unknown-coff] [H8300] ICE for simple code with -O2
* 11902 [sh4] spec file improperly inserts rpath even when none needed
* 11903 [sh4] -pthread fails to link due to error in spec file on sh4

Aller plus loin

  • # Re: GCC 3.3.2 dans les bacs

    Posté par  . Évalué à 1.

    mince il optimise même !

    non mais sans rire, c'est impressionnant le travail fait sur gcc. A votre avis, c'est le logiciel libre le plus populaire (utilisé/apprécié) ou c'est un serveur qui emporte la palme (lequel d'ailleurs) ?
  • # Re: GCC 3.3.2 dans les bacs

    Posté par  (site web personnel, Mastodon) . Évalué à 3.

    ce sera quoi les nouveautés ? Perso, j'y connais pas grand chose. J'ai juste vu la différence entre le 2.9 et le 3 pasque j'avais des stdout qui compilaient plus. A part ça...

    Mes livres CC By-SA : https://ploum.net/livres.html

    • [^] # Re: GCC 3.3.2 dans les bacs

      Posté par  (site web personnel) . Évalué à 7.

      http://gcc.gnu.org/ml/gcc-announce/2003/msg00011.html(...)
      « I do not anticipate any further GCC 3.3.x releases; the next GCC release
      will be GCC 3.4, which will contain a number of new features such as
      pre-compiled headers, a new C++ parser, and improved optimizations.
      It's difficult to predict a release date for GCC 3.4, but my current
      best guess is March 1st, 2004. »

      Pré-compilation des en-têtes, nouvel analyseur C++, meilleures optimisations (entre autres). Toujours pas le mythique 'export' du C++ qu'aucun compilo n'offre.
      • [^] # Re: GCC 3.3.2 dans les bacs

        Posté par  (site web personnel, Mastodon) . Évalué à 4.

        A quoi servira le export en C++ ?
        • [^] # Re: GCC 3.3.2 dans les bacs

          Posté par  . Évalué à -1.

          Tu peux trouver 1500 exemplaires de la réponse à ta question dans les archives de fr.comp.lang.c++... google est ton ami, comme dit l'adage. Je conseillerais une recherche sur "export template", à moins que tu ne connaisses pas les templates, auquel cas je te déconseille de commencer par là ;)
        • [^] # Re: GCC 3.3.2 dans les bacs

          Posté par  . Évalué à 1.

          A ne plus s'amuser à inclure les définitions des fonctions inline et template dans les headers.

          Maintenant, on est tellement habitués à le faire que ça ne gène pratiquement personne, je pense. En plus, avant que export soit portable sur plusieurs compilos, les poules auront des dents, et je crois que nous serons tous morts avant...
          • [^] # Re: GCC 3.3.2 dans les bacs

            Posté par  . Évalué à 1.

            ça ne gène pratiquement personne, je pense

            Merci pour le pratiquement, car y en a que ça choque terriblement ;)
            «De mon temps», un fichier d'entêtes, ça servait à déclarer et surtout pas à définir.
      • [^] # Re: GCC 3.3.2 dans les bacs

        Posté par  (site web personnel) . Évalué à 6.

        > Toujours pas le mythique 'export' du C++ qu'aucun compilo n'offre.
        Il y a au moins comeau
        http://www.comeaucomputing.com/4.0/docs/userman/export.html(...)
  • # Re: GCC 3.3.2 dans les bacs

    Posté par  . Évalué à -8.

    Pourquoi article de seconde zone ?
  • # Re: GCC 3.3.2 dans les bacs

    Posté par  (site web personnel, Mastodon) . Évalué à 5.

    Un conseil: upgradez avec précaution. J'ai eu des soucis en recompilant mon kernel 2.4.22 avec le dernier package Debian gcc 3.3.2 : j'avais un timeout au boot sur mon CDROM (déclaré en ide-scsi). En compilant mon noyau avec gcc 3.2 ça passe. Prudence donc...

    WeeChat, the extensible chat client

    • [^] # Re: GCC 3.3.2 dans les bacs

      Posté par  . Évalué à 0.

      C'est pas dit quelque part qu'il faut utiliser egcs et pas gcc pour compiler des noyaux?
      Et -O2 et pas -O3 aussi.
      Il me semble que c'est (c'etait?) dans le README de la racine des sources.
      • [^] # Re: GCC 3.3.2 dans les bacs

        Posté par  (site web personnel) . Évalué à 1.

        /usr/src/kernel-source-2.4.22/README
        8<--------------------------
        - Make sure you have gcc 2.95.3 available. gcc 2.91.66 (egcs-1.1.2) may
        also work but is not as safe, and *gcc 2.7.2.3 is no longer supported*.
        Also remember to upgrade your binutils package (for as/ld/nm and company)
        if necessary. For more information, refer to ./Documentation/Changes.
        8<--------------------------

        Ceci dit j'ai compilé des noyaux pour Pentium I, bi-PII et 486 avec un gcc 3.3.2, et ils tournent.
  • # Re: GCC 3.3.2 dans les bacs

    Posté par  . Évalué à 2.

    C'est pas pour chipoter mais on dirais bien que c'est plutôt gcc 3.3.1 dans la mandrake.

    (Même que perso ça m'embêtte un peu rapport à un petit problème quand il optimise pour k6, mais bon...).

    Bravo à l'équipe gcc et tout ça, je comprend tellement rien à ce changelog que ça doit-être super :)
  • # Fortune...

    Posté par  . Évalué à 3.

    - qqun a essayé GCC 3.3.2 ? ca donne quoi ?

    - un exécutable !


    (merci) -->[]

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.