Возможно, вы захотите попытаться сделать это под немного другим углом, загрузив ваш объект с помощью предварительной загрузки.
Установите LD_PRELOAD, чтобы он указывал на ваш новый объект
export LD_PRELOAD=/my/newfuncs/dir/newfuncs.o
и таким же образом укажите существующую библиотеку через LD_LIBRARY_PATH.
Это тогда даст указание компоновщику во время выполнения искать необходимые символы в вашем объекте, прежде чем искать объекты, расположенные в вашем LD_LIBRARY_PATH.
Кстати, вы можете поместить вызовы в свой объект, чтобы затем вызвать функцию, которая была бы вызвана, если бы вы не указали объект или объекты LD_PRELOAD. Вот почему это иногда называют вставкой.
Это количество инструментов анализа распределения памяти. Они вставляют версии malloc () и free (), которые записывают вызовы alloc () и free () перед тем, как затем вызывать фактические системные функции alloc и free для управления памятью.
Существует множество учебных пособий по использованию Интернета в LD_PRELOAD. Одним из оригинальных и лучших по-прежнему остается « Создание библиотеки вставок для развлечения и прибыли ». Несмотря на то, что он написан девять лет назад и написан для Solaris, он по-прежнему отличный ресурс.
HTH и удачи.