Product SiteDocumentation Site

6.3. Gnu Compiler Collection (GCC)

Il pacchetto gcc è stato aggiornato dalla versione 4.4.2 alla 4.4.3. Al suo interno si trovano gcc, gcc-c++, gcc-fortran, gcc-gnat, e gcc-objc.

6.3.1. GCC ora usa il linking DSO implicito

Punti chiave:
  1. ld non ricerca automaticamente le dipendenze degli oggetti collegati (linked), come avveniva in precedenza.
  2. Se un progetto usa due librerie, p.e. A e B, collegate tra loro, esso non può essere compilato a meno che non venga esplicitamente dichiarato il collegamento ad A e B.
  3. Maggiori informazioni al riguardo si trovano in Modificato il comportamento predefinito di ld sulla wiki di Fedora.
A causa di questi cambiamenti, se un pacchetto non termina correttamente la compilazione, segnalando un messaggio del tipo:
/usr/bin/ld: gpx-parser.o: undefined reference to symbol 'acos@@GLIBC_2.0'
/usr/bin/ld: note: 'acos@@GLIBC_2.0' is defined in DSO /lib/libm.so.6 so try adding it to the linker command line
Allora la riga di comando che compila lo specifico .o deve essere esplicitamente collegata a libm.

6.3.2. _builtin_stdarg_start è stato completamente rimosso da gcc 4.4.3.

_builtin_stdarg_start restituisce un riferimento indefinito a _builtin_stdarg_start perchè è stato messo in deprecation <stdarg.h> in gcc 4.x L'alternativa è _builtin_va_start.