Domanda

Ho problemi a collegare una libreria condivisa utilizzando 3.2.3 gcc con binutils 2.18. Quando provo a collegare la libreria ottengo il seguente errore:

.gnu.linkonce.t _... fa riferimento nella sezione .rodata: definito nella sezione scartato .gnu.linkonce.t ...

Ho fatto una discreta quantità di googling su questo e la maggior parte dei luoghi sembrano indicare che è una regressione introdurre in binutils 2.17 e successivamente fissato in 2.18.50, ma ero curioso di sapere se qualcuno sapeva che se ci fossero soluzioni alternative specifiche per il problema senza dover toccare binutils e gcc.

Grazie.

È stato utile?

Soluzione

Questa si è rivelata essere un risultato strano in cui il sistema è stato mismatching gcc con un diverso binutils. / Usr / bin / gcc veniva usato (3.2.3) e / usr / local / bin / ld è stato utilizzato con essa a causa / usr / local / bin essere davanti / usr / bin nel percorso. Quando siamo passati in modo che / usr / bin era al fronte del percorso, il / usr / bin / ld appropriato è stato chiamato (binutils 2.14) e questo sembra aver risolto il problema.

Altri suggerimenti

Questo bug è stato trovato ed è stato segnalato qui GCC Bugzilla , un piccolo testcase che si concentra sul bug è stato fornito nei commenti che ho trovato per essere veramente utile per non perdere tempo. Questo bug è stato risolto a partire GCC 3.4.6.

Ho avuto questo problema durante l'utilizzo di GCC 3.3.1 con binutils 2.15.92 e binutils 2.17.50 ed entrambi non ha funzionato. Quindi, per me è chiaramente non era il mix di versioni GCC e binutils che hanno reso il problema.

Se è necessario utilizzare una versione più vecchia GCC è possibile utilizzare questa patch fornita da H.J. e farlo manualmente quindi rigenerare nuovamente il vecchio GCC.

Fissare senza COMDAT

Fissare con il gruppo COMDAT

Controlla le attachements nei link forniti che mostra il diff esatta per la correzione.

Ho fatto io e testato e ha funzionato con successo, l'applicazione di patch GCC 3.3.1 con il primo fix "senza COMDAT", ricostruito e utilizzato con binutils 2.15.92 e binutils 2.17.50.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top