Суть такова: есть некая программа, которая собирается на вполне себе свежей системе. Но есть желание запускать собранный бинарник на относительно старых системах (Debian Stable, например ^_^), не пересобирая его. Проблема в том, что на старой системе требуется более свежая версия glibc: на собирающей машине glibc-2.17, на тестовой машине с Debian glibc-2.11, при запуске ошибки вида
/lib/libc.so.6: version `GLIBC_2.15' not found (required by /opt/mysoftware/bin/libQtGui.so.4)
/lib/libc.so.6: version `GLIBC_2.14' not found (required by /opt/mysoftware/bin/libQtGui.so.4)
Я пробовал решить эту проблему путём подкладывания к библиотекам программы той glibc, с которой программа собирается; в этом случае ошибка была такая:
error while loading shared libraries: __vdso_gettimeofday: invalid mode for dlopen(): Invalid argument
Если добавить кроме libc.so.6 ещё и ld-2.17.so и пробовать запускать программы (любые) с её помощью, то происходит сегфолт:
$ LD_LIBRARY_PATH=/opt/mysoftware/bin /opt/mysoftware/bin/ld-2.17.so /bin/ls
Segmentation fault
Вопрос: можно ли как-то так собрать софтину на новой системе, чтобы она запускалась на старой системе? Про вариант «собрать пакет на старой системе» я знаю, но желательно обойтись без этого.