2017-03-15 3 views
2

J'ai créé des sections spéciales dans un fichier lié et je veux qu'elles soient dans des segments séparés pour avoir des autorisations de page différentes.Créer un nouveau segment dans le script de l'éditeur de liens tout en conservant ceux par défaut

Dans le script de l'éditeur de liens, la commande PHDRS peut spécifier des segments dans un fichier lié. Cependant, comme l'indique le document, PHDRS ne créera aucun segment défini par défaut autre que celui spécifié dans la commande. Et je n'ai trouvé aucune commande PHDRS dans la sortie ld --verbose.

Est-il possible de conserver les valeurs par défaut? Ou quelles sont les spécifications par défaut des segments afin que je puisse les écrire dans mon propre script d'éditeur de liens?

Répondre

1

Entré à travers ce lorsque vous cherchez des réponses similaires. Il est tard, mais quelqu'un d'autre pourrait le rencontrer. Pour obtenir le script d'éditeur de liens actuellement utilisé, vous pouvez utiliser gcc -Wl,--verbose ... ou ld --verbose ... lors de la liaison, ce qui va vider le script (et un tas d'autres choses) sur stdout. Pour autant que je sache, il n'y a aucun moyen de conserver les en-têtes du programme par défaut et de simplement leur ajouter une entrée sans écrire un script personnalisé pour analyser la sortie de ce qui précède. Si vous voulez ajouter une section d'autre part, apparemment, il y a un truc avec objcopy --add-section qui vous permet d'ajouter une section à un fichier elf existant.