[Discussioni] GNU SDK
Alessandro Rubini
rubini a gnu.org
Dom 2 Dic 2001 17:48:03 CET
>>> cc: unrecognized switch -O2 - aborting.
Certo. Perche` il cc di hp non prende -O2.
> Altro esempio mi è accaduto quando trovando una libreria C++ compilata con
> compilatore diverso dal GCC: non ci sarà mai verso di usarla con il GCC
> (questo è un problema insito nel linguaggio, lo so, visto che non c'è
> standard per i .LIB/.A)
Non e` questo il motivo.
In gcc.info leggo:
* GNU C++ does not do name mangling in the same way as other C++
compilers. This means that object files compiled with one compiler
cannot be used with another.
This effect is intentional, to protect you from more subtle
problems. Compilers differ as to many internal details of C++
implementation, including: how class instances are laid out, how
multiple inheritance is implemented, and how virtual function
calls are handled. If the name encoding were made the same, your
programs would link against libraries provided from other
compilers--but the programs would then crash when run.
Incompatible libraries are then detected at link time, rather than
at run time.
Ci sono anche opzioni di cmdline per controllare il "mangling", e dice
che se le usi anche tutte le librerie devono essere compilate cosi`.
> <polemica_gratuita disclaimer="non è possibile trarre una simile conclusione
> da un caso isolato">Orbene non è questo un approccio "proprietario"? Non
> dissimile dall'approccio M$: "usa i miei tool e tutto
> funziona"?</polemica_gratuita>
No. Piu` semplicemente, io compilo il programma sui sistemi che ho. Se
su altri sistemi non funziona mi dispiace, ma non posso andare molto
piu` in la`.
Personalmente per GNU barcode mi assicuro che compili e giri anche su
uno dei bsd e su hurd, ma e` un lavoro in piu` non indifferente (in
particolare aggiustare i makefile per il make povero povero di
bsd). Non ho alcuna intenzione di farlo anche per i duemila unix
proprietari, o per windows. Ovviamente se ricevo contributi che
aggiungono la portabilita` non ho problemi ad integrali, se non
danneggiano il funzionamento sui sistemi che mi interessano. Se
qualcuno e` interessato al supporto per il suo sistema puo` attivarsi
in tal senso (o in prima persona oppure *almeno* regalarmi una di tali
macchine con compilatori e tutto).
> Sarebbe sensato proporre uno "GNU SDK"?
Non ho capito la proposta.
/alessandro
More information about the discussioni
mailing list