У меня есть статическая библиотека, которая содержит некоторые функции JNICALL, т.е. ожидается, что они будут вызываться из JVM, и на них никогда не ссылается общая библиотека, которая связывает статическую библиотеку.
Тем не менее, похоже, что удаление функции уничтожает функцию JNICALL (она не видна в arm-eabi-objdump -t). Я работаю над этим, добавляя фиктивную функцию с невозможным условием, которая вызывает функцию JNICALL, но это грязно. Я знаю, что есть опция ссылки, чтобы предотвратить удаление неиспользуемых данных некоторых модулей, но что это? И как указать эту опцию в файле .mk? Я не увидел ничего сразу очевидного в arm-eabi-ld.
Между прочим, удаление функции не удаляет функции JNICALL в самой разделяемой библиотеке, но удаляет те из статической библиотеки, на которую ссылается разделяемая библиотека. В чем причина этого?