web-dev-qa-db-fra.com

Impossible de compiler: relocalisation non reconnue

Je ne peux rien compiler dans mon pc. Je ne sais pas pourquoi, j'ai probablement installé un paquet et fait des dégâts. J'ai désinstallé et réinstallé gcc et d'autres paquetages, mais pas de bonnes nouvelles .. toujours ce problème. 

C'est le message:

/usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-
linux/bin/ld: /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../lib64/crt1.o: unrecognized relocation (0x29) in section `.text'

Une idée de ce que cela signifie et comment résoudre ce problème?

à votre santé

6
gabib44

Pour tous ceux qui rencontrent ce problème: Je pense que le problème de @ gabib44 utilisait une version plus ancienne de ld pour lier une bibliothèque construite avec une version plus récente.

"relocalisation non reconnue" se produit lorsque le type de relocalisation est supérieur au plus grand type de relocalisation connu dans votre version de ld. 0x2a (R_X86_64_REX_GOTPCRELX) est actuellement le type de relocalisation avec la plus grande valeur; Je suppose que la variable ld de @ gabib44 était suffisamment vieille pour ne pas connaître le type de relocalisation avant celle-ci (0x29, R_X86_64_GOTPCRELX).

J'ai eu ce problème moi-même lorsque je construisais une bibliothèque avec binutils v2.26 (qui connaissait le transfert 0x2a), mais que je l'ai ensuite intégrée à une machine de construction utilisant binutils v2.24

Le correctif consiste soit à créer la bibliothèque que vous souhaitez lier avec une version antérieure de la suite binutils, soit à mettre à niveau ld sur la machine souhaitant lier cette bibliothèque.

13
Jake Molnar

J'ai trouvé ceci dans un autre post:

[... qui, une fois compilé, amène cette erreur:

/usr/lib/gcc/x86_64-pc-linux-gnu/6.4.0/../../../../x86_64-pc-linux-
gnu/bin/ld: /usr/lib/gcc/x86_64-pc-linux-
gnu/6.4.0/../../../../lib64/Scrt1.o: unrecognized relocation (0x2a) in 
section `.text'

Après avoir essayé beaucoup de choses, y compris des binaires émergents d'un autre système Gentoo, j'ai finalement résolu le problème et résolu le problème grâce à optiz0r (pour résoudre mon problème) et à Ryuno-Ki [m] (pour m'avoir informé de l'optiz0rs quand je me suis déconnecté).

Sudo binutils-config x86_64-pc-linux-gnu-2.29.1

Très simple! La solution à votre problème peut différer, mais en cours d'exécution

Sudo binutils-config -l

peut révéler la version que vous pouvez entrer à la place de la version que j'ai utilisée ...] par necrophcodr »mar 06 fév 2018 21:24 sur https://forum.sabayon.org/viewtopic.php ? f = 57 & t = 34076 & p = 181260 # p181260

Cela a fonctionné pour moi.

2
Marcio H Zuchini

J'ai corrigé l'installation de gcc-32bit et la suppression de divers autres paquets

1
gabib44