Ayuda con failer enlazador: .gnu.linkonce.t
-
11-09-2019 - |
Pregunta
Tengo problemas para vincular una biblioteca compartida utilizando gcc 3.2.3 con binutils 2.18. Cuando trato de enlazar la librería me sale el siguiente error:
.gnu.linkonce.t _... hace referencia en la sección .rodata: se define en la sección descartada .gnu.linkonce.t ...
He hecho una buena cantidad de googlear en esto y la mayoría de los lugares parecen indicar que es una regresión introducir en binutils 2.17 y posteriormente fijado en 2.18.50, pero tenía curiosidad por si alguien sabía si había alguna soluciones particulares para el problema sin tener que tocar binutils y gcc.
Gracias.
Solución
Esto resultó ser un resultado extraño, donde el sistema fue una mala adaptación gcc con diferentes binutils. estaba siendo usado / usr / bin / gcc (3.2.3) y / usr / local / bin / ld estaba siendo utilizado con él debido a / usr / local / bin estar frente a / usr / bin en la ruta. Cuando cambiamos de manera que / usr / bin estaba en el frente de la trayectoria, el directorio / usr / bin / ld apropiada se llama (binutils 2.14) y esto parece haber resuelto el problema.
Otros consejos
Este error se encontró y se informó aquí GCC Bugzilla , un pequeño caso de prueba que se centra en el fallo se proporciona en los comentarios que he encontrado que es muy útil para no perder tiempo. Este error se corrigió a partir GCC 3.4.6
.
he tenido este problema durante el uso de GCC 3.3.1
con binutils 2.15.92
y binutils 2.17.50
y ambos no funcionaba. Por lo tanto, para mí está claro que no era la mezcla de GCC
y binutils
versiones que hicieron el problema.
Si tiene que usar una versión más antigua GCC
puede usar este parche proporcionado por H.J.
y hacerlo de forma manual y luego reconstruir su antigua GCC
de nuevo.
Comprobar los archivos adjuntos en los enlaces proporcionados que muestra el diff exacta para la revisión.
he hice yo mismo y lo ha probado y ha funcionado con éxito, parches GCC 3.3.1
con el primer punto de referencia "sin grupo COMDAT", reconstruido y utilizado con binutils 2.15.92
y binutils 2.17.50
.