macos - usando - handoff no funciona
¿Un equivalente objcopy para Mac/iPhone? (3)
Sé que estoy resucitando este post de entre los muertos, pero ...
Tengo una repentina necesidad de hacer esto también, y descubrir que objcopy
no funciona en OSX fue un poco chocante. Pero creo que es posible usar ld
para lograr el mismo efecto:
ld -r input.o -o output.o -alias oldsymbol newsymbol -unexported_symbol oldsymbol
Esto realmente crea un alias para el símbolo con un nuevo nombre y oculta el anterior.
Todavía no he tenido la oportunidad de hacer muchas pruebas, pero mirar el archivo de salida con nm
muestra que parece estar haciendo lo correcto.
Me gustaría cambiar el nombre de los símbolos dentro de los archivos de objetos (.o) con algo que sería el equivalente de Mac de la objcopy --redefine-syms
.
No encontré arm-apple-darwin10-objcopy
. arm-elf-binutils
puerto del arm-elf-binutils
MacPorts y también intenté jugar un poco con otool
y segedit
sin mucho éxito.
¿Alguna idea por favor?
Suena como un trabajo para el objconv de Agner Fog .
Desde el announcement :
Ahora he terminado de ofrecer soporte completo para los archivos de Mach-O en el convertidor de archivos de objetos mencionado en mis publicaciones anteriores. Puede usarlo como un reemplazo para la utilidad objcopy que falta.
Objconv se puede utilizar para los siguientes fines:
Convierta archivos de objetos y archivos de biblioteca / archivo entre los formatos Mach-O, ELF, COFF y OMF para todas las plataformas x86 y x86-64.Cambie los nombres de los símbolos en los archivos de objetos, debilite los símbolos y agregue nombres de alias a los símbolos.
Construya, modifique y convierta archivos de biblioteca estática (* .a, * .lib) a través de plataformas (Mac, Linux, BSD, Windows)
Volcar archivos objeto y archivos ejecutables.
Desmontar archivos de objetos y archivos ejecutables. Muy buen desensamblador.
objconv no funciona actualmente para ARM, por lo que esta opción no está disponible para iPhone. No debería ser un problema usar objconv de elf a mach-o para mac osx x86 / x64 sin embargo. Avísame si encontraste una solución para ARM