Неопределенный символ - это символ, который библиотека использует, но не был определен ни в одном из объектных файлов, которые использовались при создании библиотеки.
Обычно символ определяется в другой библиотеке, которая также должна быть связана с вашим приложением. Кроме того, символ не определен, потому что вы забыли создать код, который определяет символ, или забыли включить объектный файл с этим символом в вашу библиотеку.
В вашем случае это выглядит как символ из библиотеки C вашей реализации, так что вы ожидаете, что он будет неопределенным в вашей собственной библиотеке. Он будет определен в вашем libc.so, где бы это ни было, возможно /usr/lib.