Tengo una biblioteca estática que contiene algunas funciones JNICALL, es decir, se espera que se llamen desde la JVM y la biblioteca compartida que vincula la biblioteca estática no hace referencia a ellas.¿Cómo evito que se eliminen ciertas funciones?
Sin embargo, parece que la eliminación de funciones está exterminando la función JNICALL (no está visible en arm-eabi-objdump -t). Estoy trabajando en ello al agregar una función ficticia con una condición imposible que llama a la función JNICALL, pero eso es sucio. Sé que hay una opción de enlace para evitar que ciertos módulos obtengan sus datos no utilizados, pero ¿qué es eso? ¿Y cómo especifico esa opción en el archivo .mk? No vi nada inmediatamente obvio en el brazo-eabi-ld.
Dicho sea de paso, la función stripping no elimina las funciones de JNICALL en la biblioteca compartida en sí, pero eliminará aquellas de la biblioteca estática que la biblioteca compartida está enlazando. ¿Cuál es la razón para eso?
Esto acaba de aparecer - http://stackoverflow.com/questions/3549432/preventing-functions-from-being-stripped-from-a-static-library-when-linked-into-a/3559733#3559733 – fadden
Y es fadden, por supuesto, mi chico de respuesta personal :) ¿Quieres publicar esto como una pregunta para que yo pueda aceptarlo? (Bueno, eso, o podría cerrar mi propia pregunta como una víctima) – EboMike