Un équivalent objcopy pour Mac / iPhone?
je voudrais renommer les symboles à l'intérieur des fichiers objet (.o) avec quelque chose qui serait l'équivalent Mac de binutils' objcopy --redefine-syms
outil.
je n'ai pas trouvé arm-apple-darwin10-objcopy
. J'ai essayé les MacPorts!--2 -- > port et aussi essayé de jouer un peu avec otool
et segedit
sans grand succès.
des idées s'il vous plaît?
3 réponses
ça ressemble à un travail pour Le Brouillard D'Agner objconv.
j'ai maintenant terminé de faire le plein soutien pour les dossiers de Mach-O dans le convertisseur de dossier d'objet mentionné dans Mes poteaux précédents. Vous pouvez l'utiliser comme un remplacement pour l'utilité objcopy manquant.
Objconv peut être utilisé pour les buts suivants:
Convertir des dossiers d'objet et des dossiers de bibliothèque/archive entre Les formats Mach-O, ELF, COFF et OMF pour toutes les plateformes x86 et x86-64.changer les noms de symboles dans les fichiers d'objets, rendre les symboles faibles, ajouter des noms d'alias aux symboles.
construire, Modifier et convertir des fichiers de bibliothèque statiques (*.un.* ,lib) à travers les plateformes (Mac, Linux, BSD, Windows)
Dump de l'objet de fichiers et les fichiers exécutables
démonter les fichiers d'objets et les fichiers exécutables. Très bon désassembleur.
je sais que je suis la résurrection de cet article de la mort, mais...
j'ai un besoin soudain de le faire, et découvrir qu' objcopy
ne fonctionne pas sur OSX était un peu un choc. Mais J' penser il est possible d'utiliser ld
pour obtenir le même effet:
ld -r input.o -o output.o -alias oldsymbol newsymbol -unexported_symbol oldsymbol
cela crée vraiment un alias pour le symbole sous un nouveau nom et Cache l'ancien.
je n'ai pas eu la chance de faire beaucoup de tests mais en regardant le fichier de sortie avec nm
montre qu'il semble faire la bonne chose.
objconv ne fonctionne pas actuellement pour ARM, cette option n'est donc pas disponible pour iPhone. Il ne devrait pas être de problème d'utiliser objconv de elf à mach-o pour mac osx x86/x64 cependant. Faites - moi savoir si vous avez trouvé une solution pour ARM