View previous topic :: View next topic |
Author |
Message |
rb34 Guru
Joined: 03 Oct 2004 Posts: 361 Location: Rome, italy
|
Posted: Wed Jan 03, 2007 4:54 pm Post subject: Mancata compilazione con gcc vecchio (3.3) |
|
|
Uno dei motivi per cui uso Gentoo è che pensavo che uno potesse rimanere con gcc (e glibc e compagni) vecchi a tempo più o meno indeterminato visto che viene tutto compilato.
Oggi ho avuto un'altra sorpresa: libmpeg3 dice
Code: | >>> Unpacking libmpeg3-1.5.2-textrel-fix.patch.bz2 to /tmp/portage/libmpeg3-1.5.2-r3/work
* You're using an old version of GCC, but this package is
* designed to work only with GCC 3.4 or later.
* Please upgrade your GCC or change the selected profile
* and then merge this again.
|
Ma... che cavolo usano del nuovo gcc??
In fondo, immagino questa sia una questione del pacchetto più che di gentoo... certo che però se molti altri si mettono a fare così l'upgrade diventa forzato.
Sono fermo a gcc 3.3.6, ok, anche perché ho veramente paura di aggiornare il sistema, non mi posso permettere che stia fermo per problemi imprevisti.
Cmq aggiornerò prima o poi a gcc 4.1... _________________ rb |
|
Back to top |
|
|
Onip Advocate
Joined: 02 Sep 2004 Posts: 2912 Location: Parma (Italy)
|
Posted: Wed Jan 03, 2007 5:24 pm Post subject: |
|
|
puoi sempre mascherare quel pacchetto.
Byez
p.s. io non avrei paura di un upgrade, tutto sommato è già parecchio tempo che è stabili e i vari problemini saranno già risolti. L'unica cosa preoccupante può essere il "fattore tempo". _________________ Linux Registered User n. 373835
Titus Lucretius Carus, De Rerum Natura - Tantum religio potuit suadere malorum |
|
Back to top |
|
|
Ic3M4n Advocate
Joined: 02 Nov 2004 Posts: 3489 Location: Bergamo.
|
Posted: Wed Jan 03, 2007 5:30 pm Post subject: |
|
|
come dice Onip se non vuoi aggiornarla maschera il pacchetto. in ogni caso dato che i problemi dovuti al lungo tempo passato per la stabilizzazione di gcc 4.x vuol dire che qualcosa nella sintassi e nei costrutti ritenuti validi o meno sono cambiati. quindi è normale che qualcosa non funzioni se scritto per un determinato compilatore o meno. è un po' come voler compilar le glib con ICC o qualsiasi programma in c++ attuale con gcc 2.9*. semplicemente il linguaggio si evolve. |
|
Back to top |
|
|
rb34 Guru
Joined: 03 Oct 2004 Posts: 361 Location: Rome, italy
|
Posted: Wed Jan 03, 2007 5:52 pm Post subject: |
|
|
Ic3M4n wrote: | come dice Onip se non vuoi aggiornarla maschera il pacchetto. in ogni caso dato che i problemi dovuti al lungo tempo passato per la stabilizzazione di gcc 4.x vuol dire che qualcosa nella sintassi e nei costrutti ritenuti validi o meno sono cambiati. quindi è normale che qualcosa non funzioni se scritto per un determinato compilatore o meno. è un po' come voler compilar le glib con ICC o qualsiasi programma in c++ attuale con gcc 2.9*. semplicemente il linguaggio si evolve. |
A me risulta che il java si sia evoluto, ma che il C e C++ siano tali da anni.
Forse era gcc che non supportava pienamente il C++... _________________ rb |
|
Back to top |
|
|
Ic3M4n Advocate
Joined: 02 Nov 2004 Posts: 3489 Location: Bergamo.
|
Posted: Wed Jan 03, 2007 5:55 pm Post subject: |
|
|
no. i namespace non esistevano con gcc 2.qualcosa. almeno questo è quanto so. in ogni caso molti costrutti possono essere validi con un compilatore o venire segnalati come warning o addirittura come errori in altri. |
|
Back to top |
|
|
Luca89 Advocate
Joined: 27 Apr 2005 Posts: 2107 Location: Agrigento (Italy)
|
Posted: Wed Jan 03, 2007 6:11 pm Post subject: |
|
|
rb34 wrote: | A me risulta che il java si sia evoluto, ma che il C e C++ siano tali da anni.
Forse era gcc che non supportava pienamente il C++... |
Il c++ ha subito parecchie modifiche con gcc 3.4, quindi è normale che qualche programma nuovo dia problemi. O mascheri quel pacchetto o ti installi una versione più recente di gcc. _________________ Running Fast! |
|
Back to top |
|
|
Kernel78 Moderator
Joined: 24 Jun 2005 Posts: 3654
|
Posted: Wed Jan 03, 2007 6:21 pm Post subject: |
|
|
O se proprio non puoi rischiare eviti di installare/aggiornare altre cose e ti tieni il sistema congelato. _________________ Le tre grandi virtù di un programmatore: pigrizia, impazienza e arroganza. (Larry Wall).
Prima di postare un file togli i commenti con Code: | grep -vE '(^[[:space:]]*($|(#|!|;|//)))' |
|
|
Back to top |
|
|
rb34 Guru
Joined: 03 Oct 2004 Posts: 361 Location: Rome, italy
|
Posted: Wed Jan 03, 2007 6:35 pm Post subject: |
|
|
Luca89 wrote: | rb34 wrote: | A me risulta che il java si sia evoluto, ma che il C e C++ siano tali da anni.
Forse era gcc che non supportava pienamente il C++... |
Il c++ ha subito parecchie modifiche con gcc 3.4, quindi è normale che qualche programma nuovo dia problemi. O mascheri quel pacchetto o ti installi una versione più recente di gcc. |
Scusate se cavillo, ma cosa vuole dire in concreto (anche senza scendere in dettaglio) "Il c++ ha subito parecchie modifiche con gcc 3.4"? Come dicevo, credo che negli ultimi anni (credo dal 1994) il linguaggio C++ non sia cambiato di una virgola, se poi mi dite è cambiata la gestione da parte del gcc ok, o sennò... cosa sarebbe cambiato? _________________ rb |
|
Back to top |
|
|
Kernel78 Moderator
Joined: 24 Jun 2005 Posts: 3654
|
Posted: Wed Jan 03, 2007 7:03 pm Post subject: |
|
|
Potrei dire amenità ma l'unico standard è l'ansi C (standard ansi appunto), ogni compilatore ha poi delle implementazioni leggermente differenti e in continua evoluzione, il c++ poi (sempre a quanto ne so io) non è mai stato standardizzato quindi la situazione è ancora più variegata. _________________ Le tre grandi virtù di un programmatore: pigrizia, impazienza e arroganza. (Larry Wall).
Prima di postare un file togli i commenti con Code: | grep -vE '(^[[:space:]]*($|(#|!|;|//)))' |
|
|
Back to top |
|
|
Luca89 Advocate
Joined: 27 Apr 2005 Posts: 2107 Location: Agrigento (Italy)
|
Posted: Wed Jan 03, 2007 7:05 pm Post subject: |
|
|
rb34 wrote: | "Il c++ ha subito parecchie modifiche con gcc 3.4"? Come dicevo, credo che negli ultimi anni (credo dal 1994) il linguaggio C++ non sia cambiato di una virgola, se poi mi dite è cambiata la gestione da parte del gcc ok, o sennò... cosa sarebbe cambiato? |
Non so scendere in particolari perché ho poche conoscenze di C++, so solo che con ggc 3.4 la libreria per c++ è stata parecchio modificata ed è stata pure rotta la compatibilità con le precedenti versioni. Questo implica per esempio che eseguibili creati con gcc 3.3.x non posso girare su un sistema che presenta gcc-3.4.x (a meno che non si installa la vecchia versione della libreria):
Code: | * sys-libs/libstdc++-v3
Available versions: ~3.3.3-r1:5 3.3.4:5 ~3.3.6:5
Installed: 3.3.4
Homepage: http://gcc.gnu.org/libstdc++/
Description: Compatibility package for running binaries linked against a pre gcc 3.4 libstdc++
|
credo quindi che sia giusta la tua ipotesi che ho segnato in grassetto. _________________ Running Fast! |
|
Back to top |
|
|
rb34 Guru
Joined: 03 Oct 2004 Posts: 361 Location: Rome, italy
|
Posted: Wed Jan 03, 2007 10:08 pm Post subject: |
|
|
Kernel78 wrote: | Potrei dire amenità ma l'unico standard è l'ansi C (standard ansi appunto), ogni compilatore ha poi delle implementazioni leggermente differenti e in continua evoluzione, il c++ poi (sempre a quanto ne so io) non è mai stato standardizzato quindi la situazione è ancora più variegata. |
Anche il C++ è stato standardizzato, ho un libro in cui uno degli autori faceva parte del comitato di standardizzazione... ora non ricordo l'anno preciso, è stato a metà degli anni 90. _________________ rb |
|
Back to top |
|
|
randomaze Bodhisattva
Joined: 21 Oct 2003 Posts: 9985
|
Posted: Thu Jan 04, 2007 10:02 am Post subject: |
|
|
Kernel78 wrote: | Potrei dire amenità ma l'unico standard è l'ansi C (standard ansi appunto) |
Ci sarebbero anche i vari ISO, di cui peraltro l'ISO99 non é ancora stato recepito completamente.
Un buon elenco di informazioni si può trovare in url=http://gcc.gnu.org/onlinedocs/gcc-4.1.0/gcc/Standards.html#Standards]questa pagina[/url].
rb34 wrote: | Anche il C++ è stato standardizzato, ho un libro in cui uno degli autori faceva parte del comitato di standardizzazione... ora non ricordo l'anno preciso, è stato a metà degli anni 90. |
Nulla è scolpito nella pietra e anche il C++ si evolve. In questi giorni sto giusto lottando con le differenze tra il C++ di HP/UX e quello di g++ 3.2.
Per la cronaca lo "standard" del C++ lo fanno da queste parti. _________________ Ciao da me! |
|
Back to top |
|
|
|