Supposons la plate-forme x86 64 et Linux.Quelle est la limite de taille de fichier objet ELF sur la plate-forme 64 bits?
Si vous regardez dans l'en-tête ELF, les décalages sont tous 64 bits.
Il est donc facile de créer un fichier objet plus grand que 4G avec relocatoin R_X86_64_64. Cela signifie qu'un fichier .o statique et un exécutable peuvent être aussi grands que 64 bits peuvent représenter. Cependant, pour la bibliothèque partagée, comme gcc, nous n'avons que la relocalisation R_X86_64_PLT32. Cela signifie qu'il est impossible de créer une bibliothèque partagée de plus de 4 Go, n'est-ce pas?
Donc, si je veux construire un énorme programme, l'un des fichiers .o est assez énorme (> 4 Go), le seul choix est la liaison statique?
Tout commentaire est le bienvenu.
Merci, limi
Merci beaucoup. J'ai lu l'ABI et j'ai remarqué que gcc commence à le supporter depuis 4.3. Je l'essaie maintenant. – limi