Было несколько технических решений исходной проблемы, отмеченной здесь, например,
скомпилировать несколько версий против
разные версии libc.
или
установить дополнительные библиотеки на
другие машины
но если вы находитесь в положении ISV, на самом деле есть только одно разумное решение:
Получите чистую установку более старой системы (например, Ubuntu 6.x, если вы ориентируетесь на рабочие столы, возможно, еще в Red Hat 9, если вы ориентируетесь на серверы) и создайте на ней свое программное обеспечение. Как правило, библиотеки (и определенно libc) обратно совместимы, поэтому у вас не будет проблем с запуском на более новых системах.
Конечно, если у вас нестандартные или недавние зависимости lib, это не решит проблему полностью. В этом случае, как и предполагали другие, если вы хотите быть устойчивым, лучше использовать dlopen () и сообщать о проблемах (или запускать с ограниченной функциональностью).