[Discussioni] GNU SDK

jaromil jaromil a dyne.org
Dom 2 Dic 2001 19:45:31 CET


On Sun, Dec 02, 2001 at 05:48:03PM +0100, Alessandro Rubini wrote:
> 
> >>> 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`.

AFAIK libtool (ed in aggiunta ltld in particolare se trattiamo di
cross-platform) puo' aiutare parecchio con i problemi di "mangling"
dei simboli nei binari, addirittura permettendo di esportare in un
file di testo la lista dei simboli.

da libtool.info:

   GNU Libtool simplifies the developer's job by encapsulating both
   the platform-specific dependencies, and the user interface, in a
   single script.  GNU Libtool is designed so that the complete
   functionality of each host type is available via a generic
   interface, but nasty quirks are hidden from the programmer.

-- 
jaromil //dyne.org - GPG fingerprint and ___id____ 
6EEE 4FB2 2555 7ACD 8496  AB99 E2A2 93B4 6C62 4800




More information about the discussioni mailing list