Linux: libgcc_s.so.1 must be installed for pthread_cancel to work
libgcc_s.so.1 must be installed for pthread_cancel to work
Даже если у вас стоит самая свежая версия libgcc, это еще не значит что запускаемая программа не выдаст вышеозначенную ошибку :)
Вот и я долго мучался не понимая почему у меня не стартует нужное бинарное приложение. Всё оказалось прозаично - бинарник был написан пару лет назад и уже не поддерживал свежие версии libgcc. К тому же у меня еще 64х-битная платформа сервера. В общем родной /lib64/libgcc_s.so.1 версии 4.4.1 от 29-07-2009 никак не подходил запускаемому приложению.
Но, в прочем, не всё так плохо. Достаточно найти старую версию libgcc (например libgcc_s-4.1.2-20070925.so.1), а в шелле прописать переменную LD_PRELOAD
ERROR: ld.so: object '/usr/lib/libgcc_s-4.1.2-20070925.so.1' from LD_PRELOAD cannot be preloaded: ignored.
Поэтому, после использования приложения, которому нужна была старая версия libgcc, имеет смысл удалить переменную LD_PRELOAD
Даже если у вас стоит самая свежая версия libgcc, это еще не значит что запускаемая программа не выдаст вышеозначенную ошибку :)
Вот и я долго мучался не понимая почему у меня не стартует нужное бинарное приложение. Всё оказалось прозаично - бинарник был написан пару лет назад и уже не поддерживал свежие версии libgcc. К тому же у меня еще 64х-битная платформа сервера. В общем родной /lib64/libgcc_s.so.1 версии 4.4.1 от 29-07-2009 никак не подходил запускаемому приложению.
Но, в прочем, не всё так плохо. Достаточно найти старую версию libgcc (например libgcc_s-4.1.2-20070925.so.1), а в шелле прописать переменную LD_PRELOAD
export LD_PRELOAD=PATH_TO_FILE/libgcc_s-4.1.2-20070925.so.1
Правда теперь, при выполнении многих команд, например того же ls, перед выдачей результата будет выдаваться ошибка:ERROR: ld.so: object '/usr/lib/libgcc_s-4.1.2-20070925.so.1' from LD_PRELOAD cannot be preloaded: ignored.
Поэтому, после использования приложения, которому нужна была старая версия libgcc, имеет смысл удалить переменную LD_PRELOAD
export -n LD_PRELOAD