Попробовал запустить разные версии Tor Browser в CentOS 5 (старый комп). В версиях 1.x нормальный Firefox, но Vidalia и Bundled-либы:
Launching Tor Browser Bundle for Linux in /home/username/tor-browser_ru
./App/vidalia: /lib/libc.so.6: version `GLIBC_2.7' not found (required by ./App/vidalia)
./App/vidalia: /lib/libc.so.6: version `GLIBC_2.9' not found (required by /home/username/tor-browser_ru/Lib/libQtGui.so.4)
./App/vidalia: /lib/libc.so.6: version `GLIBC_2.10' not found (required by /home/username/tor-browser_ru/Lib/libQtNetwork.so.4)
./App/vidalia: /lib/libc.so.6: version `GLIBC_2.9' not found (required by /home/username/tor-browser_ru/Lib/libQtCore.so.4)
./App/vidalia: /lib/libc.so.6: version `GLIBC_2.7' not found (required by /home/username/tor-browser_ru/Lib/libcrypto.so.0.9.8)
Exited cleanly. Goodbye
Это фатальная ошибка, которую, тем не менее, можно починить с помощью patchelf.
В версиях 2.x это починили, но одновременно сломали Firefox:
./firefox-bin: /usr/lib/gcc/i586-pc-linux-gnu/4.1.1/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by /home/username/tor-browser_ru/App/Firefox/libxul.so)
Это не фатальная ошибка, которая чинится подстановкой правильного libstdc++.so.6 (что я и сделал и запустил программу)
---
А вопрос в следующем. Существует Red Hat Toolset, позволяющий установить в CentOS 5 и 6 - GCC 4.7, 4.8 и 4.9. Я воспользовался этим тулсетом, чтобы скомпилировать Firefox, Qt5 и PCSX2 для старых дистров.
Когда Qt5 успешно докомпилировался, я решил положить libstdc++.so.6 вместе с софтиной, чтобы она работала в системе без всяких там тулсетов. И вдруг:
$ strings libQt5*.so.5.3.2 | grep LIB
GLIBC_2.3
GLIBC_2.0
GLIBC_2.2
GLIBC_2.1
GLIBCXX_3.4
GLIBC_2.1.2
GLIBC_2.4
GLIBC_2.1.3
GLIBC_2.3.3
GLIBC_2.3.2
QT_NO_GLIB
QT_NO_THREADED_GLIB
LD_LIBRARY_PATH
GLIBC_2.0
GLIBC_2.1
GLIBC_2.1.3
GLIBCXX_3.4
GLIBC_2.0
GLIBCXX_3.4
GLIBC_2.3
GLIBC_2.1
GLIBC_2.2.4
GLIBC_2.1.3
LD_LIBRARY_PATH
GLIBC_2.0
GLIBC_2.1.3
GLIBCXX_3.4
GLIBC_2.0
GLIBC_2.1.3
GLIBCXX_3.4
GLIBCXX_3.4
GLIBC_2.0
GLIBC_2.1.3
GLIBC_2.0
GLIBC_2.1
GLIBC_2.1.2
GLIBC_2.1.3
GLIBCXX_3.4
Волшебный GCC 4.7 собрал либу так, что она просто-напросто не требует новый C++ Runtime. А когда я собирал GCC вручную (в Debian), это требовалось.
Как собрать GCC таким образом? Какой ключ сборки включить (вот список)? Вот SPEC-файл gcc48.spec из CentOS 5: http://paste.org.ru/?sh8vyt