2 coisas:
1) Harfbuzz e FreeType aparentemente têm uma infame dependência circular. Isso significa que você precisa realmente fazer suas próprias construções de ambos e em um local totalmente isolado das bibliotecas do sistema.
2) Como regra geral, as ferramentas de compilação do GCC encontrarão as bibliotecas do sistema antes de qualquer construção personalizada (por exemplo, via pkgconfig, FindXXX.cmake, ambiente vars, etc.), a menos que você diga explicitamente para elas seu primeiro. Esse é o principal caso de uso para o qual eles visam, afinal de contas. Verifique se o seu CMakeLists.txt ou Makefile está explicitamente vinculado em sua versão do FreeType, não em nenhum dos sistemas operacionais. Parece que a sua compilação está encontrando o sistema operacional primeiro e, depois, (incorretamente) tentando usá-lo.
Para testar se você está obtendo o FreeType correto, você pode voltar o seu e alterar a versão principal #. Volte a executar a compilação e execute "ldd" ou "readelf -d" em sua compilação do libharfbuzz.so e confirme se você vê a versão correta do Freetype vinculada.
Como um aparte, para construir o Pango para usar o Harfbuzz, a ordem das operações parece ser:
A) Construa o FreeType "simples"
B) Construir Harfbuzz
C) Construir novo Freetype com Harfbuzz
D) Finalmente, construa o Pango com o FreeType na etapa (C), mais o Harfbuzz explicitamente.
Eu não tentei ainda, mas essa é a indicação que as várias instruções estão me dando. Eu poderia passar o Harfbuzz inteiramente a menos que você tenha certeza de que precisa, já que a introdução dele implica a reconstrução do FreeType também.