Я не могу рассказать вам все подробности о HPUX, но попробуйте связать вашу программу с -lpthread - это может решить вашу проблему.
В действительности библиотека, которую вы используете dlopen (), кажется,копаться во время выполнения, чтобы найти версию libpthread.LD_PRELOAD просто загружает указанную библиотеку, как если бы вы ее отбрасывали, но она делает это до того, как программа сможет запустить.
Не уверен в деталях, но смутное предположение: какая-то библиотека, которую вы используетеВызвал функции статических данных pthread до того, как ваш dlopen вызовет загрузку libpthread (но зачем ему пытаться загрузить pthread тогда, если первая библиотека имела его как зависимость??).