[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